【发布时间】:2013-03-05 15:56:59
【问题描述】:
我一直在调整示例 here 以使其反复监视文件以进行“修改”。我的代码是here。在我的测试中,inotify 通知仅在文件第一次“修改”时触发(即touch'ed)。对该文件的任何后续修改都不会导致触发任何通知。 stat 表示“修改”时间已更改。此外,修改代码以删除手表并在每次触发通知时重新添加(即将inotify_add_watch 和inotify_rm_watch 移动到我的while(1) 循环内sample)无助于解决此问题。
我想知道这里是否有人可以帮助解决我可能做错的事情。另外,虽然我添加了IN_ALL_EVENTS 的手表,但我真的只关心IN_MODIFY 事件。不确定这是否有什么不同。
另外,这个用例不工作吗?我应该改变我的方法来观看目录吗?请指教。
TIA。
编辑 1:正如 themel 所指出的,i 的处理需要一些修复。然而,即使是固定版本也不会触发后续文件系统“事件”的通知。此外,在目录而不是文件上添加监视会表现出类似的非确定性行为。
编辑 2:我想让这个基于 this answer 的 asio + inotify example 工作。不幸的是,这个例子根本不适合我。任何帮助将非常感激。 TIA。
【问题讨论】:
标签: c++ linux filesystems inotify