On Saturday, 21 May 2016 at 21:40:36 UTC, Era Scarecrow wrote:
On Saturday, 21 May 2016 at 21:21:31 UTC, chaseratx wrote:
I'm learning D and I have a basic question.

I'm trying to write stderr to a file using open() (rather than shell piping/redirection). It works for stdout but doesn't seem to work with stderr.

http://pastebin.com/KgzR9wAF

stdout is written to the file, but stderr is not and outputs to the shell. I'm not sure why. I Googled but couldn't find an answer. Any hints?

  // <= causes range violation, might use foreach instead
  while (i < numbers.length) {
    write(numbers[i], " ");
stderr.write(numbers[i]*10); //force stderr, 10x to differentiate output

    with (stderr) {              //also force stderr
      write(" ");
    }

Thanks Era, but I am not trying to fix the range error. That was put there intentionally to create stderr output. I'm trying to figure out how to get ALL stderr output directed to a file the same as if I had used a "2>error.log" redirect from the command line.

Reply via email to