inotify
是 Linux 系统中的一个内核子系统,用于监控文件系统事件
要自定义 inotify
的事件类型,你需要使用位掩码(bitmask)来组合不同的事件。以下是一些常用的 inotify
事件类型:
IN_ACCESS
:文件被访问。IN_MODIFY
:文件被修改。IN_ATTRIB
:文件的属性发生变化。IN_CLOSE_WRITE
:文件被关闭,且之前被写入。IN_CLOSE_NOWRITE
:文件被关闭,且之前没有被写入。IN_OPEN
:文件被打开。IN_MOVED_FROM
:文件从一个目录移动到另一个目录。IN_MOVED_TO
:文件被移动到一个目录。IN_CREATE
:在目录中创建新文件或目录。IN_DELETE
:从目录中删除文件或目录。IN_DELETE_SELF
:文件或目录被删除。IN_MOVE_SELF
:文件或目录被移动。要自定义事件类型,你需要将这些事件类型的常量进行位或(OR)操作。例如,如果你想要监控文件的修改、删除和移动事件,你可以这样做:
#include <sys/inotify.h>
int event_mask = IN_MODIFY | IN_DELETE | IN_MOVE;
然后,你可以将这个 event_mask
传递给 inotify_init()
和 inotify_add_watch()
函数,以便监控这些自定义事件类型。
请注意,inotify
API 可能会因 Linux 发行版和内核版本的不同而略有差异。在使用之前,请确保查阅你所使用的系统的文档。