我的问题是,我用无记名功能来观察多个目录,我用读()函数来读懂任何更改。我的观点是,我不能在“ 相同时间” (“ for” roll) 中查看全部目录,因为读() 函数停止程序直到当前所监视目录发生一些事情为止。
有简化的“主”代码 :
while (1){
for(int i = 0; i < numberOfDirectories; i++){
string fileEnd = get_event(fd[i], catalogs[i]).c_str());
if(string != "") do some code;
}
sleep(1);
}
获取事件返回已更改文件的路径时, fd[i] 是匿名的例子, 目录[i] 包含被监视目录的名称 。
也有一些代码 得到甚至func:
#define BUFF_SIZE ((sizeof(struct inotify_event)+FILENAME_MAX)*1024)
string get_event(int fd, string target)
{
ssize_t len;
char buff[BUFF_SIZE] = {0};
len = read (fd, buff, BUFF_SIZE);
在此点, 主“ for” 循环停止工作, 等待第一个目录发生一些事情。 我只想检查被监视目录中是否有变化, 而不是等待更改 。
帮助: <