0

コンソール アプリを実行して、標準 I/O の読み取り/書き込みを試みています。問題は、このアプリが WriteFile(GetStdHandle(...)) を介して出力に書き込むときに、パイプで ReadFile を使用して入力を正常に読み取ることです。

ターゲット アプリが fprintf を使用する場合、ReadFile はターゲット アプリが終了するまでブロックします。終了すると、出力全体が一度に返されます。ターゲット アプリが (たとえば、fgets() を介して) ブロックすると、ReadFile がブロックされます。

標準のパイプ リダイレクトを使用しています: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682499(v=vs.85).aspx

その奇妙な動作はなぜですか? どうすれば回避できますか?

4

1 に答える 1