0

簡単な質問です。1 つの名前付きパイプにアクセスする必要がある 2 つのプログラムがあるとします。一方の端でO_RDONLYフラグを使用して読み取りに open() 関数を使用する場合、もう一方の端はファイルを開き、O_WRONLYそれに書き込むことができますか? 他のプログラムは書き込まれたデータを取得しますか?

4

1 に答える 1

1

出来るよ。

を使用O_RDWRしてパイプを開くと、ブロックされません。

を使用O_RDONLYしてパイプを開くと、ライターがパイプを開くまでブロックされます。これは、以前O_NONBLOCKにパイプを正常に開いたことを確認した場合を除きます。

を使用O_WRONLYしてパイプを開くと、リーダーがパイプを開くまでブロックされますが、 も使用O_NONBLOCKするopen()と失敗します。

于 2012-09-26T00:39:28.673 に答える