1

一時的にファイルにリダイレクトstdout(およびオプションでstderr)し、後で元のファイルを復元することは可能ですか(もしそうなら、どのように?) stdout

POSIX環境では、とを使用dupdup2て保存および置換しSTDOUT_FILENOます。その方法で回復することはできないのでfreopen、良い解決策ではありません。stdout

Windows APIでこれを行うことは可能ですか?POSIXのような関数_DUPとを使用して可能だと思います_DUP2。それらを含まない解決策はありますか?

4

2 に答える 2

2

SetStdHandleWin32APIを見てください。また、_dupと_dup2も使用できます。

編集

次のStackOverflowの投稿を参照してください。

stdoutを編集コントロールにリダイレクトする(Win32)

実際の例では、dupまたはdup2を使用します

于 2012-08-13T00:54:26.780 に答える
1

Windowsでは、予約ファイル名「CON」はコンソール出力ストリームを意味します。Windowsで通常のSTDOUTの動作を再現するには、電話をかけるだけです。

freopen("CON","w",stdout);
于 2012-08-13T00:43:56.943 に答える