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.