我的文件系统中有一个文件,我需要尽可能频繁地阅读我的程序。当文件更改时,它会将所有更改复制到缓冲区,然后清空文件。
这个文件偶尔会被其他程序写入。
问题是,您不能同时读取和写入一个文件。如何确保我的程序尽可能频繁地检查文件,同时仍允许其他程序写入文件?
这个程序不是多平台的,所以我想让我的代码尽可能依赖于Windows API来保持二进制文件的大小。
谢谢!
答案 0 :(得分:4)
尝试使用FindFirstChangeNotification()API。它可以让您知道何时更改文件。
答案 1 :(得分:0)
正确的方法是使用过滤器驱动程序,不要让数据进入文件,而是动态捕获它们并使用它们。如果您有文件系统过滤器驱动程序(我们这样做),这是一项微不足道的任务。所有其他方法都倾向于跳过数据或反应太慢或导致共享冲突(取决于应用程序将数据写入文件)。