我想重新打开 stdin和 stdout(也许还有 stderr)的文件句柄,这样以后对 printf()、 putchar()或 puts()的调用就会转到一个文件,以后对 getc()等的调用就会来自一个文件。
1)我不想永久丢失标准的输入/输出/错误,我可能想在以后的程序中重用它们。
2)我不想打开新的文件句柄,因为这些文件句柄要么需要经常传递,要么需要全局传递(不寒而栗)。
3)我不想使用任何 open()或 fork()或其他系统相关的功能,如果我不能帮助它。
所以基本上,这样做是否有效:
stdin = fopen("newin", "r");
如果是这样,我怎样才能得到 stdin的原始值呢?我需要把它存在 FILE *里,然后再拿回来吗?