2つのプロセスAとBがあるとします。彼らはすべて同じファイルに追加したいと思います。両方ともファイルを開くために関数を使用open
(使用しない)しO_APPEND
、両方ともpwrite(fd, buf, bytes, offset)
ファイルを書き込むために使用されます。
pwrite
ファイルの末尾でオフセット位置を解析する必要があるため、この場合データを上書きしないことをどのように保証できますか?
答え1
これを保証するものではありません。本当に話の終わりです。
答え2
@Marcus Müllerは次のように書いています。
これを保証するものではありません。本当に話の終わりです。
このpwrite
機能自体は、あなたが説明するシナリオでのデータの上書きに対する保護を保証しません。
データの上書きを防ぐには、プロセスが同じオフセットに同時に書き込まないように、ファイルのロック、プロセス間通信、または共有データ構造を介した調整などの他のメカニズムを実装する必要があります。