我正在尝试在/ 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); }
为什么它第一次工作,而不是晚?我每次更改密码时看到时间戳更改。 相同的代码工作正常的其他文件。
更改/etc/passwd
,大多数应用程序会创建一个新文件并重命名它。 这给了一个新的inode号码。