-1

我们的一个进程(Writer)将定期创建一个文件。鉴于其他进程(我们称他们为读者)将在不同时间读取此文件,因此会出现以下问题。

a) 当 Writer 写入文件时,Reader(独立于 Writer)不会读取同一文件的不完整版本。?
b) 我们应该创建一个备份文件 (file.bin~) 吗?当我们将旧文件(file.bin)重命名为备份文件(file.bin~)并创建新文件(file.bin)时会发生什么?

这有点类似于在有人使用编辑器保存文件时备份文件的备份程序。

摘要:在进行所有文件保存和备份文件创建的同时,您如何确保 Reader 程序永远不会获得不完整的文件(换句话说,您如何确保 Reader 程序始终获得完整的文件?)

谢谢,

4

1 回答 1

0
  1. 想办法让读者知道作者正在写作,这样他们就可以停止阅读。(或者让作者等待读者完成)
  2. 让 writer 将数据写入新文件(file_new.bin)
  3. 将旧文件 (file.bin) 复制/移动到新位置 (file_old.bin)
  4. 用新文件 (file_new.bin) 替换旧文件 (file.bin)
  5. 您可以考虑保留旧版本 (file_old.bin) 以进行简单备份(或者将其发送到带有日期戳等的单独文件夹(或服务器)以进行更高级的备份)或简单地删除它以节省存储空间
于 2013-08-05T11:50:26.613 回答