linux内核如何知道哪个inotify_handle有某个watch

发布于 2024-12-11 11:46:27 字数 444 浏览 0 评论 0原文

据我了解,linux内核提供了“inotify机制”来监控文件系统。

根据inotify的说法,inotify_init()返回fd以接收来自内核的inotify_event。 (我知道内核会在其上写入 inotify_event 。)

1) 如果我使用 inotify_add_watch() 通过 inotify fd 添加新的手表,谁当监视的文件发生事件时,将在 inotify fd 上写入 inotify_event

2)(如果内核这样做的话)当内核检测到监视文件的事件时,内核如何决定哪个 inotify fd(inotify_instance) 必须使用此 inotify_event 进行更新?

I understood that linux kernel provides "inotify mechanism" to monitor file system.

According to inotify, inotify_init() returns fd to receive inotify_event from kernel.
(I understood kernel will write inotify_event on it.)

1) And if I add new watch with the inotify fd using inotify_add_watch(), Who will write inotify_event on inotify fd when the watched file has got an event.

2) (if kernel does,) when kernel detects an event for watched file, how does kernel decide which inotify fd(inotify_instance) has to update with this inotify_event?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

傲世九天 2024-12-18 11:46:27

我自己研究了一下,答案是这样的:

  1. 是linux内核;特别是文件系统。
  2. 当您对某个文件调用 inotify_add_watch() 时,inotify 会将 inotify watch 的一些信息存储到该文件的 inode 结构中。

然后,每当文件系统处理该文件时,它都会检查该文件的 inode 结构 - 是否存在 inotify 监视。如果 inotify 监视从 inode 结构中找到的内容,inotify 会报告 inotify_event

My own research, this is the answer:

  1. It is linux kernel; specifically the file system.
  2. When you call inotify_add_watch() to certain file, inotify stores some information of inotify watch into that file's inode structure.

Then, whenever file system deals with that file, it checks the file's inode sturture - whether there exists inotify watches or not. If inotify watches found from inode structure, inotify reports inotify_event.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文