capture stdout or stderr

angel via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Feb 1 06:38:18 PST 2017


On Wednesday, 1 February 2017 at 01:08:19 UTC, Emil wrote:
> is it possible to intercept the  STDOUT or STDERR and capture 
> the output into a variable ?
>
>
> some pseudocode to explain what I mean
>
> string[] output_buffer;
> stdout.capture_to(output_buffer);
>
> writeln("test 1"); # not printed
> writeln("test 2"); # not printed
>
> stdout.release(output_buffer);
>
> writeln("test 3"); # printed
> writeln(output_buffer); # prints '["test 1","test 2"]'

No.
Please keep in mind, that in Linux, for example, stdout is a file 
...
writeln() interacts with OS API, which, of course, has nothing to 
do with internal data structures of your application.
What you could probably do is replace writeln() with a custom 
logger. In your logger implementation you can add such 
functionality.





More information about the Digitalmars-d-learn mailing list