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