Я хочу снова открыть дескрипторы stdin и stdout (и, возможно, stderr в то время как я на нем), так что будущие вызовы printf() или putchar() или puts() перейдут к файл и будущие вызовы getc(), и это будет происходить из файла.
1) Я не хочу навсегда потерять стандартный ввод/вывод/ошибку. Я могу повторно использовать их позже в программе.
2) Я не хочу открывать новые дескрипторы файлов, потому что эти дескрипторы файлов должны быть переданы либо много, либо глобально (содрогание).
3) Я не хочу использовать любые open() или fork() или другие зависящие от системы функции, если я не могу помочь.
Итак, в основном, работает ли это:
stdin = fopen("newin", "r");
И, если это так, как я могу вернуть исходное значение stdin назад? Мне нужно сохранить его в FILE * и просто вернуть его позже?