0

亲爱的 linux C 程序员:

在 linux fanotify 工具中,我知道如何监视文件打开(FAN_OPEN)。如果我一直监控到关闭,我还可以了解打开是“读取”还是“写入”,因为有 FAN_CLOSE_WRITE 和 FAN_CLOSE_NOWRITE。

我一直认为会在 open() 时间告诉 POSIX 文件是否打开以进行读/写,这样 fanotify 会让我在打开时区分它们,而不是在关闭时区分它们。我在这里一定是错的。

我是吗?为什么?

/iaw

4

1 回答 1

1

根据fanotify_mark(2),该事件指示正在关闭的文件类型:

FAN_CLOSE_WRITE 在可写文件关闭时创建事件。

FAN_CLOSE_NOWRITE 在只读文件或目录关闭时创建事件。

在您的fanotify_mark(2)通话中,您需要表达对FAN_MODIFY事件的兴趣。如果文件被修改,您将收到通知。似乎没有办法知道文件是以写意图打开的。只有当文件实际被修改时才会通知您。

于 2015-01-23T02:26:44.830 回答