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 に答える