私はさまざまな Linux 名前付きパイプ クライアント/サーバーの実装を経験しましたが、それらのほとんどは読み取り/書き込みでブロックの既定値を使用します。
私はすでに poll() を使用して他のフラグをチェックしているので、poll() を介して着信 FIFO データをチェックすることもお勧めします...
すべての調査の結果、パイプを O_RDWR モードで開くことが、ライターがパイプを開いていない場合に、パイプでの無制限の数の EOF イベントを防ぐ唯一の方法であると思います。
このようにして、パイプの両端が閉じられ、他のクライアントも書き込み可能な端を開くことができます。返信するには、別のパイプを使用します...
私の問題は、O_RDWR フラグを使用する例をいくつか見つけましたが、open() マンページでは、このフラグが FIFO に割り当てられたときに未定義であると説明されていることです。( http://linux.die.net/man/3/open )
しかし、O_RDWR のないパイプで poll() をどのように使用しますか? 「O_RDWR」はパイプを開く正当な方法だと思いますか???