首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QFileSystemWatcher如何确定文件是否被修改?

QFileSystemWatcher如何确定文件是否被修改?
EN

Stack Overflow用户
提问于 2016-10-27 12:27:30
回答 1查看 502关注 0票数 1

我试图使用QFileSystemWatcher查看日志文件,但每次修改日志文件时,fileChanged信号都不会始终发出。是否知道QFileSystemWatcher如何确定文件是否被修改(在windows上)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-27 13:42:25

QFileSystemWatcher'的性能完全取决于底层平台提供了什么。通常情况下,如果一个进程正在写入文件,则其他一些进程将立即看到这些更改,这是绝对不能保证的。QFileSystemWatcher的行为可能会告诉你这个事实。日志写入过程可能会选择刷新文件。根据平台的不同,刷新的语义可能是这样的,当flush()返回时,其他进程可以看到在flush()之前对文件所做的更改。如果是这样的话,那么您将期望QFileSystemWatcher将更改通知您。

随着平台获得新的特性,QFileSystemWatcher在实现新的文件系统通知API方面可能会滞后。您需要阅读它的源代码,以确定它是否支持您所选择的平台在这方面提供的所有内容。

您需要限定QFileSystemWatcher在您想要支持的每个平台上的行为。您可能会发现,定期显式轮询文件信息在某些情况下可能会更好地工作--同样,轮询和QFileSystemWatcher之间的选择应该在逐个平台的基础上进行,因为如果观察者在给定的平台上正常工作,那么轮询可能会产生不必要的开销。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40284573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档