我想重开stdin和stdout(也许stderr当我在它)的文件句柄,从而使未来的呼叫printf()或putchar()还是puts()会去到一个文件,以及未来的呼叫getc()和这种将来自一个文件.
1)我不想永久丢失标准输入/输出/错误.我可能希望稍后在程序中重用它们.
2)我不想打开新的文件句柄,因为这些文件句柄必须要么传递很多,要么全局传递(不寒而栗).
3)如果我无法帮助,我不想使用任何open()或fork()其他系统相关的功能.
所以基本上,这样做是否有效:
stdin = fopen("newin", "r");
Run Code Online (Sandbox Code Playgroud)
而且,如果确实如此,我怎样才能得到原来的价值stdin?我是否必须将其存放在一个FILE *以后才能将其取回?