linux,inotify - 如何订阅?

dev*_*dev 5 c++ linux inotify

你能解释一下inotify机制吗?我在网上搜索过它,但我理解的是,如果我想查看文件中的更改,我必须使用"读取"功能进行轮询.是否有任何回调函数会在文件没有轮询时发生变化时通知我?

谢谢,

BЈо*_*вић 0

不,inotify 需要轮询。

使用信号注册回调(如建议的那样),在我看来比定期轮询更糟糕。

  • 仅当您通过信号处理程序的异常时。信号处理程序应该做尽可能少的工作这一事实并不意味着轮询是首选。例如,您的主代码可以创建一个管道,设置信号处理程序,然后在管道上进行选择。信号处理程序将单个字符写入管道然后退出。write 是异步信号安全的。控制返回到您的主代码并选择返回。您有一个最小的信号处理程序,并且不需要轮询。 (2认同)