我在使这个循环起作用方面遇到了麻烦。
const char* filename = "test.txt";
int inotfd = inotify_init();
int watch_desc = inotify_add_watch(inotfd, filename, IN_MODIFY);
size_t bufsize = sizeof(struct inotify_event) + PATH_MAX + 1;
struct inotify_event* event = (inotify_event*)malloc(bufsize);
while (true) {
read(inotfd, event, bufsize);
//Does smth here
}
问题是它只循环一次。在第一个Does smth here
行之后,循环结束。
此外,我正在使用inotify
来了解文本文件何时在应用程序之外进行修改。 read()
只是等待文件被修改,所以我需要在循环内。