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 发行版和内核版本的不同而略有差异。在使用之前,请确保查阅你所使用的系统的文档。