在有人试图写入文件之前,我该如何阅读文件?

时间:2012-01-28 02:39:53

标签: c++ winapi filesystems

我的文件系统中有一个文件,我需要尽可能频繁地阅读我的程序。当文件更改时,它会将所有更改复制到缓冲区,然后清空文件。

这个文件偶尔会被其他程序写入。

问题是,您不能同时读取和写入一个文件。如何确保我的程序尽可能频繁地检查文件,同时仍允许其他程序写入文件?

这个程序不是多平台的,所以我想让我的代码尽可能依赖于Windows API来保持二进制文件的大小。

谢谢!

2 个答案:

答案 0 :(得分:4)

尝试使用FindFirstChangeNotification()API。它可以让您知道何时更改文件。

答案 1 :(得分:0)

正确的方法是使用过滤器驱动程序,不要让数据进入文件,而是动态捕获它们并使用它们。如果您有文件系统过滤器驱动程序(我们这样做),这是一项微不足道的任务。所有其他方法都倾向于跳过数据或反应太慢或导致共享冲突(取决于应用程序将数据写入文件)。