同步独立的应用程序。 (如何在运行时检查文件是否被其他程序修改)

时间:2013-09-17 11:51:29

标签: c++ linux windows file file-sharing

通过示例更容易解释。

当两个文本编辑器同时编辑同一个文本文件时,当一个编辑器保存文件时,另一个编辑器知道它已被修改并要求执行smth。

如何在程序外获取文件被修改的信号?

我正在使用c ++(虽然我认为它并不重要)和Linux上。 (Windows的解决方案也会很好)

2 个答案:

答案 0 :(得分:2)

ISO-C ++不提供此功能,因此您必须坚持使用操作系统提供的功能。

在Linux上inotify,在Windows上使用directory change notifications

答案 1 :(得分:1)

①在写入之前尽可能接近检查文件的时间戳。如果它不是您上次打开此文件进行阅读时的情况,那么请注意!

②您可以构建文件的校验和,并将其与之前构建的文件进行比较。

③注册到系统服务,通知您有关文件活动的信息。这取决于您使用的操作系统的商誉;如果此通知服务无法正常工作,您的内容将失败。在Linux上看看Inotify。