Windows 如何自动更改文件内容? 我给出了一个二进制文件,考虑它很大,还有几个二进制块,我应该插入/替换文件偏移中间的某个地方。p>

Windows 如何自动更改文件内容? 我给出了一个二进制文件,考虑它很大,还有几个二进制块,我应该插入/替换文件偏移中间的某个地方。p>,windows,linux,macos,file,filesystems,Windows,Linux,Macos,File,Filesystems,同时,用户可能获得对文件的访问权,因此我必须什么都没有,或者用户在我更新所有内容之前打开文件时拥有旧版本,或者如果我成功,她拥有新版本 我对Linux、Windows和OS X的解决方案很感兴趣。当然,实现可能会有所不同。对于Linux: 在临时文件中执行所有操作。 fsync临时文件。 将临时文件重命名为真实文件。 这个习语被称为原子重命名。你的问题在细节上有点缺乏。你是怎么打开文件的?您正在创建应用程序吗?当文件被打开时,它总是通过我们的应用程序吗?您使用的是什么语言?是的,我正在创建一个应

同时,用户可能获得对文件的访问权,因此我必须什么都没有,或者用户在我更新所有内容之前打开文件时拥有旧版本,或者如果我成功,她拥有新版本

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

对于Linux:

在临时文件中执行所有操作。 fsync临时文件。 将临时文件重命名为真实文件。
这个习语被称为原子重命名。

你的问题在细节上有点缺乏。你是怎么打开文件的?您正在创建应用程序吗?当文件被打开时,它总是通过我们的应用程序吗?您使用的是什么语言?是的,我正在创建一个应用程序。我猜具体的语言没关系,所以让我们考虑C++。我的应用程序知道是否有人通过inotify/WinAPI打开该文件。请参阅:这是一个简单的解决方案,但临时文件至少需要两倍的空间。