我在繁忙的目录上使用inotify
(文件继续生成)。我想抓住所有人的IN_CLOSE_WRITE
事件。
所以我尝试过这样的事情。
fd = inotify_init();
inotify_add_watch(fd, DIR_PATH, IN_CLOSE_WRITE);
while(1) {
len = read(fd, buff, INOTIFY_EVENT_SIZE);
if (len < 0) {
PRINT_ERROR("Read failed. Keep watching.\n");
continue;
}
/* Process the event */
}
此方法无法捕获在处理第一次读取事件时生成的事件。我希望它可以工作。
我应该如何处理?如果您发现缺少某些内容,请与我们联系。
答案 0 :(得分:0)
我正在等待IN_CLOSE_WRITE,但我的目录中的文件实际上是从差异处移动的。所以事件没有被抓住。我将事件桅杆改为IN_MOVE并且效果很好。