inotify inotify_event 事件->名称为空

发布于 2024-12-13 05:39:59 字数 609 浏览 0 评论 0原文

我正在使用 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;
        }

I am using inotify to monitor changes on some files.
The problem is that inotify_event event->name is empty so I cant tell which file was modified

why is event->name empty?

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;
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

氛圍 2024-12-20 05:39:59

从 inotify 手册页...

名称字段仅在文件返回事件时出现
在监视目录内;它标识文件相对路径名
到观看的目录。该路径名以 null 结尾,并且可能
包括更多空字节以将后续读取对齐到合适的
地址边界。

由于您只是查看文件,而不是目录,因此名称将始终为空。

From the inotify man page...

The name field is only present when an event is returned for a file
inside a watched directory; it identifies the file pathname relative
to the watched directory. This pathname is null-terminated, and may
include further null bytes to align subsequent reads to a suitable
address boundary.

Since you're just watching files, and not directories, name will always be empty.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文