Is setting a FILE* equal to stdout portable?
c, stdout
Solution
Yes, it's portable and it's fine, provided you don't also mess with the low-level implementation of `*stdout` (e.g. by calling `close(fileno(stdout))` on Posix or using `dup`).
Problem
I've got a function that needs to be able to write to either stdout, or to a file, depending on what the user wants. It defaults to standard out though. To accomplish this, I'm doing the following (minus error checking etc): ``` FILE* out; if (writeToFile) { /*Code to open file*/; } else out = stdout; // ...rest of the function goes here if (out != stdout) fclose(out); ``` This certainly does the trick, but I have no idea how portable it is. And if it's not, and/or there's another problem with it, how should I go about this?