13.28 一旦使用 freopen() 之後, 怎樣才能恢復原來的 stdout (或 stdin)?

沒有什麼好辦法。如果你需要恢復回去, 那麼最好一開始就不要使用  freopen()。可以使用你自己的可以隨意賦值的輸出 (輸入) 流變量, 而不要去動原來的輸出 (或輸入) 流。

有一種不可移植的辦法, 可以在調用 freopen() 之前保存流的信息, 以便其後恢復原來的流。一種辦法是使用系統相關的調用如 dup(), dup2() 等。另一種辦法是複製或查看 FILE 結構的內容, 但是這種 方法完全沒有可移植性而且很不可靠。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)