File.lockingBinaryWriter
auto lockingBinaryWriter()Returns an output range that locks the file and allows fast writing to it.
Example: Produce a grayscale image of the Mandelbrot set in binary Netpbm format to standard output.
import std.algorithm, std.complex, std.range, std.stdio;
void main()
{
enum size = 500;
writef("P5\n%d %d %d\n", size, size, ubyte.max);
iota(-1, 3, 2.0/size).map!(y =>
iota(-1.5, 0.5, 2.0/size).map!(x =>
cast(ubyte)(1+
recurrence!((a, n) => x + y * complex(0, 1) + a[n-1]^^2)(complex(0))
.take(ubyte.max)
.countUntil!(z => z.re^^2 + z.im^^2 > 4))
)
)
.copy(stdout.lockingBinaryWriter);
}