我的程序中使用监控上的文件变化inotify(7)
fd = inotify_init();
inotify_add_watch (fd, "./test.txt", IN_ALL_EVENTS);
//start forever monitor
while(true){
ssize_t len, i = 0;
char action[81+FILENAME_MAX] = {0};
char buff[BUFF_SIZE] = {0};
len = read (fd, buff, BUFF_SIZE);
while (i < len) {
//process event
i += sizeof(struct inotify_event) + pevent->len;
}
}
问题是,阅读功能仅适用于监视器文件(ACCESS,打开,修改事件)的firt变化返回几次。 不幸的是在那之后,读函数不返回任何更多的虽然有很多的监控文件的变化。
不过,如果我重新设置的inotify描述符和重新进行添加的monitered文件agains,==>读功能总是返回。
//start forever monitor
while(true){
ssize_t len, i = 0;
char action[81+FILENAME_MAX] = {0};
char buff[BUFF_SIZE] = {0};
fd = inotify_init();
inotify_add_watch (fd, "./test.txt", IN_ALL_EVENTS);
len = read (fd, buff, BUFF_SIZE);
while (i < len) {
//process event
i += sizeof(struct inotify_event) + pevent->len;
}
}
难道你们帮我解释一下这个错误。 非常感谢!!!!!!