我的程序使用inotify来监视文件的更改。我的代码如下:
fd = inotify_init();
wd = inotify_add_watch(fd, "./test.txt", IN_ALL_EVENTS);
len = read(fd, buff, BUFF_SIZE);
while (i < len) {
struct inotify_event *pevent = (struct inotify_event *) &buff[i];
//process events
i += sizeof(struct inotify_event) + pevent->len;
}
但是,在我获得了受监控文件中第一次更改的几个事件(事件、、、IN_OPEN
等IN_MODIFY
)IN_ACESS
之后,受监控文件中的后续更改确实会生成任何其他事件 ==> 我的程序在读取函数中挂起(读取是被封锁)
你们能帮我解释一下这个错误吗?