如何自动更改文件内容?

时间:2012-10-01 17:36:26

标签: windows linux macos file filesystems

我得到一个二进制文件(考虑它很大)和几个二进制blob,我应该在文件中间的某处插入/替换(偏移是已知的)。

同一时间用户可以访问该文件,因此我必须“一无所有”,如果用户在我更新所有内容之前打开了该文件的旧版本,或者如果她有新版本,则我成功了。

我对Linux,Windows和OS X的解决方案感兴趣。当然,实现可能会有所不同。

1 个答案:

答案 0 :(得分:0)

对于Linux:

  • 在临时文件上执行所有操作。
  • fsync()临时文件。
  • rename()临时文件到真实文件。

这个成语被称为原子重命名。