How would I retrieve the stdout error message of a system/shell command?

Justin Whear justin at economicmodeling.com
Thu Sep 8 11:10:51 PDT 2011


That'll work if you don't mind normal output being mixed with error 
messages.


Timon Gehr wrote:

> On 09/08/2011 07:26 PM, Justin Whear wrote:
>> The Posix solution is to use pipes. Basically, you'll want the parent
>> process to set up a pipe for stderr, fork, then the child process uses
>> the write end of the stderr while the parent reads from the other end.
>> Not sure what the Windoze solution is.
>> Alternatively, the cheap and easy way is to use redirects:
>>
>> system("dmd bla.d 2>error.log");
>>
>> If an error is thrown, read from error.log.
> 
> I think the easiest way on a posix system is this:
> 
> auto res=shell("dmd bla.d 2>&1");
> 
> I haven't tested it tough. What it should do is redirect dmd's stderr to
> stdout, which can then be read.



More information about the Digitalmars-d-learn mailing list