13.28 一旦使用 freopen() 之后, 怎样才能恢复原来的 stdout (或 stdin)?

没有什么好办法。如果你需要恢复回去, 那么最好一开始就不要使用  freopen()。可以使用你自己的可以随意赋值的输出 (输入) 流变量, 而不要去动原来的输出 (或输入) 流。

有一种不可移植的办法, 可以在调用 freopen() 之前保存流的信息, 以便其后恢复原来的流。一种办法是使用系统相关的调用如 dup(), dup2() 等。另一种办法是复制或查看 FILE 结构的内容, 但是这种 方法完全没有可移植性而且很不可靠。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)