上書きされたファイルを読むとどうなりますか?

上書きされたファイルを読むとどうなりますか?

別のプロセスがファイルの内容を書き換えている間に私がファイルを読み込んだとしましょう。出力は予測可能ですか?どうしたの?

ベストアンサー1

作家が何をするかによって異なります。

作成者が既存のファイルを上書きする場合、作成者がリーダー(存在する場合)を上回ると、リーダーは新しいコンテンツを表示します。著者と読者が進行する速度が異なる場合、読者は古い内容と新しい内容を交互に見ることができる。

ライターが書き込みを開始する前にファイルを切り捨てると、リーダーはその時点でファイルの最後に実行されます。

作成者が新しいファイルを作成し、新しいファイルを古い名前に移動すると、リーダーは古いファイルから読み続けます。開いているファイルが移動または削除されると、そのファイルを開いたプロセスは同じファイルを読み続けます。ファイルが削除されると、最後のプロセスがファイルを閉じるまで実際にディスクに残ります(ただし、再度開くことはできません)。

Unixシステムはしばしば強制しないロックする。アプリケーションがライターとリーダーのコンポーネントが互いに干渉しないようにする場合は、開発者は適切なロックを使用する必要があります。カーネルによって開かれたファイルがユーザーアプリケーションによって記録されないように保護できるいくつかの例外があります。リング- マウントされたファイルシステムイメージまたは一部のUNIXバリアントで実行される実行可能ファイル。

おすすめ記事