2

我正在尝试为 /etc 目录中的 passwd 文件设置列表器,并且我只收到第一次密码更改的通知。

fd = inotify_init();
wd = inotify_add_watch (fd, "/etc/passwd", IN_MODIFY);
while(1)
{
 read (fd, buff, BUFF_SIZE);
 struct inotify_event *event = ( struct inotify_event * ) &buff[ i ];
 printf("Event Len -  %d  wd %d \n", event->len, event->wd);
}

为什么它是第一次而不是以后?我每次更改密码时都会看到时间戳发生变化。同一组代码适用于其他文件。

4

1 回答 1

4

更改时/etc/passwd,大多数应用程序会创建一个新文件并重命名它。这给出了一个新的 inode 编号。

于 2012-09-10T10:31:39.357 回答