我了解到linux内核提供了“inotify机制”来监控文件系统。
根据 inotify,inotify_init()
返回 fd 以从内核接收 inotify_event
。
(我知道内核会在上面写 inotify_event
。)
1) 如果我使用 inotify_add_watch()
添加带有 inotify fd
的新 watch ,当watched 文件有一个事件。
2) (如果内核有,)当内核检测到监视文件的事件时,内核如何决定哪个 inotify fd(inotify_instance)
必须使用此 inotify_event
更新?
最佳答案
我自己的研究,这是答案:
- 是linux内核;特别是文件系统。
- 当你调用
inotify_add_watch()
到某个文件时,inotify
将inotify
watch 的一些信息存储到该文件的inode
结构。
然后,每当文件系统处理该文件时,它都会检查文件的 inode
结构 - 是否存在 inotify watches
。如果 inotify
watches 从 inode
结构中找到,inotify
报告 inotify_event
。
关于linux - linux内核如何知道哪个inotify_handle有某个watch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7885529/