Justin Whear , dans le message (digitalmars.D.learn:29380), a écrit : > 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. >
Well, if shell throws, it will not return, and the output will not be assigned to res.