inotify_event结构如下所示:
struct inotify_event {
int wd; /* Watch descriptor */
uint32_t mask; /* Mask of events */
uint32_t cookie; /* Unique cookie associating related
events (for rename(2)) */
uint32_t len; /* Size of name field */
char name[]; /* Optional null-terminated name */
Run Code Online (Sandbox Code Playgroud)
};
名称部分仅存储文件名(不是文件的路径).我们如何从inotify_event结构中获取完全限定的路径,或者我必须将自己的结构包装在它周围?
编辑:我等待事件大约2秒,然后一次处理.我维护一个事件队列.我的问题是我是否只能从inotify_event结构中获取我的文件的完整路径?
每秒事件的数量很大.
有两种选择:
你在看文件.您已将其名称传递给inotify_add_watch,并获得了一个监视描述符.如果您收到事件,则可以通过监视描述符找出该文件.
你正在看一个目录.同样,您已将目录名称传递给 inotify_add_watch,并且可以根据监视ID找到它的名称.现在inotify_event.name包含文件名.连接这两个,你就完成了.