How would I retrieve the stdout error message of a system/shell command?
Timon Gehr
timon.gehr at gmx.ch
Thu Sep 8 11:08:25 PDT 2011
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