-1

私たちのプロセスの1つ(ライター)は、定期的にファイルを作成します。他のプロセス (リーダーと呼びましょう) がこのファイルをさまざまなタイミングで読み取るとすれば、次の疑問が生じます。

a) Writer がファイルに書き込みを行っているとき、同時に Reader (Writer とは無関係) は同じファイルの不完全なバージョンを読み取っていません。?
b) バックアップ ファイル (file.bin~) を作成する必要がありますか? 古いファイル (file.bin) の名前をバックアップ ファイル (file.bin~) に変更し、新しいファイル (file.bin) を作成する瞬間に何が起こるでしょうか?

これは、誰かがエディターでファイルを保存している間にファイルをバックアップするバックアップ プログラムにいくぶん似ています。

概要 : すべてのファイルの保存とバックアップ ファイルの作成が行われている間、Re​​ader プログラムが不完全なファイルを取得しないようにするにはどうすればよいですか (別の言い方をすれば、Reader プログラムが常に完全なファイルを取得するようにするにはどうすればよいでしょうか?)

ありがとうございました、

4

1 に答える 1

0
  1. 作家が書いていることを読者に知らせる方法を見つけて、読者が読むのをやめられるようにします。(または、代わりに、リーダーが終了するまでライターを待機させます)
  2. ライターに新しいファイル (file_new.bin) にデータを書き込ませる
  3. 古いファイル (file.bin) を新しい場所 (file_old.bin) にコピー/移動します。
  4. 古いファイル (file.bin) を新しいファイル (file_new.bin) に置き換えます。
  5. 単純なバックアップのために古いバージョン (file_old.bin) を保持することを検討するか (または、より高度なバックアップのために日付スタンプなどを使用して別のフォルダー (またはサーバー) に送信するか)、単純に削除してストレージを節約することを検討してください。
于 2013-08-05T11:50:26.613 に答える