Является ли dnotify устаревшим в ядре 4.x? - PullRequest
0 голосов
/ 08 февраля 2019

Я читаю fcntl справочную страницу и наткнулся на thw dnotify:

Уведомление об изменении файла и каталога (dnotify)

Предполагается, что новое приложение должно использовать inotify вместо этого, но я думаю, что они не совпадают, поскольку inotify работает с char * путями, что делает его страдающим от переименования файла (или кеширования MOVED_FROM / MOVED_TO событий)но dnotify работает с файловыми дескрипторами, которые отличаются:

int fcntl(int fd, int cmd, ... /* arg */ );

Так что, насколько я могу судить, dnotify не является подмножеством inotify и наоборот.

Isне рекомендуется использовать dnotify в более новом ядре, даже если я хочу подписаться на события по дескриптору файла, а не по пути к файлу, как позволяет inotify?

1 Ответ

0 голосов
/ 08 февраля 2019

Если вы прочитали страницу руководства для inotify_add_watch ближе, тогда да, он принимает путь , но возвращает «дескриптор наблюдения»

для объекта файловой системы (inode), который соответствует pathname

Таким образом, путь используется только для определения местоположения inode.После этого у вас есть ссылка на индекс, и имя файла можно без проблем изменить.

...