Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
亲爱的 linux C 程序员:
在 linux fanotify 工具中,我知道如何监视文件打开(FAN_OPEN)。如果我一直监控到关闭,我还可以了解打开是“读取”还是“写入”,因为有 FAN_CLOSE_WRITE 和 FAN_CLOSE_NOWRITE。
我一直认为会在 open() 时间告诉 POSIX 文件是否打开以进行读/写,这样 fanotify 会让我在打开时区分它们,而不是在关闭时区分它们。我在这里一定是错的。
我是吗?为什么?
/iaw
根据fanotify_mark(2),该事件指示正在关闭的文件类型:
fanotify_mark(2)
FAN_CLOSE_WRITE 在可写文件关闭时创建事件。 FAN_CLOSE_NOWRITE 在只读文件或目录关闭时创建事件。
FAN_CLOSE_WRITE 在可写文件关闭时创建事件。
FAN_CLOSE_NOWRITE 在只读文件或目录关闭时创建事件。
在您的fanotify_mark(2)通话中,您需要表达对FAN_MODIFY事件的兴趣。如果文件被修改,您将收到通知。似乎没有办法知道文件是以写意图打开的。只有当文件实际被修改时才会通知您。
FAN_MODIFY