stdout

The standard output stream.

alias stdout = makeGlobal!(StdFileHandle.stdout)

Return Value

stdout as a File.

Note: The returned File wraps core.stdc.stdio.stdout, and is therefore thread global. Reassigning stdout to a different File must be done in a single-threaded or locked context in order to avoid race conditions.

All writing to stdout automatically locks the file globally, and will cause all other threads calling write to wait until the lock is released.

Examples

void main()
{
    stdout.writeln("Write a message to stdout.");
}
void main()
{
    import std.algorithm.iteration : filter, map, sum;
    import std.format : format;
    import std.range : iota, tee;

    int len;
    const r = 6.iota
              .filter!(a => a % 2) // 1 3 5
              .map!(a => a * 2) // 2 6 10
              .tee!(_ => stdout.writefln("len: %d", len++))
              .sum;

    assert(r == 18);
}
void main()
{
    import std.algorithm.mutation : copy;
    import std.algorithm.iteration : map;
    import std.format : format;
    import std.range : iota;

    10.iota
    .map!(e => "N: %d".format(e))
    .copy(stdout.lockingTextWriter()); // the OutputRange
}

Meta