私は、ユーザーが望むものに応じて、stdoutまたはファイルに書き込むことができる必要がある関数を持っています。それは標準出力にデフォルト設定されています。これを実現するために、私は次の(マイナスのエラーチェックなどを)やってる:FILE *をstdout portableと同じに設定していますか?
FILE* out;
if (writeToFile) { /*Code to open file*/; }
else
out = stdout;
// ...rest of the function goes here
if (out != stdout)
fclose(out);
これは確かにトリックを行いますが、私はそれがどのようにポータブル見当がつかない。そうでない場合やそれに別の問題がある場合は、どうすればよいですか?