从C重路由stdin和stdout
我想重新打开stdin
和stdout
(也许还有stderr
)文件处理,以便将来调用printf()
或putchar()
或puts()
将转到一个文件中,以后将调用getc()
这将来自一个文件。
1)我不想永久地丢失标准输入/输出/错误。我可能想在以后的程序中重用它们。
2)我不想打开新的文件句柄,因为这些文件句柄要么必须大量传递,要么必须是全局的(颤抖)。
我不想用任何open()
或fork()
或者其他依赖于系统的函数,如果我帮不上忙的话。
所以基本上,这样做有效吗?
stdin = fopen("newin", "r");
如果是的话,我如何才能得到stdin
背?我要把它储存在FILE *
晚点再拿回来?