2011-06-27 10 views
2

私はパイプを使ってプロセス間で通信します。私がパイプに書き込むと、私はそれを書き込むよりも遅く読んで、パイプにアトミックな書き込みが可能になるまで書き込み()ブロックしますか?C++パイプ:書き込み時に待機する

答えて

1

はい、少なくとも書き込まれたバイト数がアトミックであることが保証されている数よりも小さい場合。

1

write()は、渡されたすべてのデータを書き込む必要はありません。書き込む回数が少なく、実際に書き込まれた量を確認する必要があります。

1

POSIX準拠のシステムはブロックする必要があります。

書き込みから(2)のmanページ:

「POSIXを読む(2)書き込みの後に発生するように証明することができる()が返す新しいデータを返したことを必要としませすべてのファイルシステム に注意してください。 POSIXに準拠していますか?

関連する問題