unistd.h的循环内的read()

时间:2013-09-22 09:20:44

标签: c++ linux loops inotify

我在使这个循环起作用方面遇到了麻烦。

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()只是等待文件被修改,所以我需要在循环内。

0 个答案:

没有答案