监控文件更改c ++ linux

use*_*277 15 c++ linux file-monitoring

我正在使用linux,我有一个目录,其中有子目录,子目录中有文件.我必须监视文件中的更改.在C++中我使用boost.我每隔30秒检查一次所有目录并查看last_write_time.原则上,它的工作原理.但每次执行此操作时,我的CPU都会疯狂,我看到15%-25%的CPU使用率仅适用于此程序.我读过关于inotify的文章.如果我使用inotify,我会有或多或少相同的CPU使用率,还是会改进?我正在做什么有什么好的选择吗?

Veg*_*ger 16

使用inotify时,不需要轮询所有文件以检查是否有更改.您将获得一个回调系统,该系统会在监视文件或目录发生更改时通知您.

内核/文件系统已经有了这些信息,因此资源/ CPU的使用不仅仅是移动到另一个应用程序,它实际上已经减少了.

使用inotify监视文件系统活动提供了有关使用inotify的更多详细信息,显示了其基本用法并帮助您进行设置.