. У меня есть функция, которая должна иметь возможность писать либо в стандартный вывод, либо в файл, в зависимости от того, что хочет пользователь. Хотя по умолчанию это стандартный выход. Для этого я делаю следующее (минус проверка ошибок и т. д.):
FILE* out;
if (writeToFile) { /*Code to open file*/; }
else
out = stdout;
//...rest of the function goes here
if (out != stdout)
fclose(out);
Это, безусловно, помогает, но я понятия не имею, насколько это портативно. И если это не так и/или есть другая проблема с этим, как мне поступить в этом случае?