オーバーラップとして作成されたパイプ ハンドルがあります。データを並行して読み書きする必要があります。どうすればこれを達成できますか?
オーバーラップされた I/O を使用する名前付きパイプ サーバーのドキュメント ページには、多くのパイプを読み書きする方法の例が示されていますが、「単一のパイプ インスタンスでの同時操作が回避されます」。
Windows上のC++でこれを行う正しい方法は何ですか? 適切な例を提出することも、トピックに関するヘルプを提出することもできません。
私が直面する主な問題は、読み取るデータがなく、最終的には WriteFile で書き込むことができない場合に、通常の ReadFile がブロックすることです。ブロックしない読み取り対象があるかどうかを教えてくれる方法は見つかりませんでした。私が理解している限りでは、OVERLAPPED 構造体を渡す必要がありますが、1 つのパイプ (多くない) への並列読み取りと書き込みの場合にそれを使用する方法がわかりません。
Synchronous and Overlapped Pipe I/Oで述べられているように、可能である必要があります。
オーバーラップ操作により、1 つのパイプでデータの読み取りと書き込みを同時に行うことができ、1 つのスレッドで複数のパイプ ハンドルに対して同時に I/O 操作を実行できます。