我使用inotify来监视某些文件的更改.问题是inotify_event event-> name是空的,所以我不能告诉哪个文件被修改了
为什么event-> name为空?
fd = inotify_init();
wd = inotify_add_watch (m_fd, "/tmp/myfile", IN_MODIFY | IN_CREATE | IN_DELETE);
wd1 = inotify_add_watch (m_fd, "/tmp/myfile2", IN_MODIFY | IN_CREATE | IN_DELETE);
-----
unsigned char buffer[BUFFER_SIZE];
ssize_t len = ACE_OS::read(fd, buffer, sizeof(buffer));
ssize_t i = 0;
while (i < len)
{
inotify_event *event = ( struct inotify_event * ) &buffer[ i ];
i += EVENT_SIZE + event->len;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
从inotify手册页...
只有在监视目录内的文件返回事件时,才会显示名称字段.它标识相对于监视目录的文件路径名.此路径名以空值终止,并且可以包括进一步的空字节,以将后续读取与合适的地址边界对齐.
由于您只是在观看文件而不是目录,因此名称将始终为空.
归档时间: |
|
查看次数: |
1509 次 |
最近记录: |