Как работает inotify?

Как работает inotify?

В соответствии сВикипедия,

inotify — это подсистема ядра Linux, которая замечает изменения в файловой системе. Она заменила предыдущую dnotify.

Программы, синхронизирующие файлы (такие как crashplan, dropbox, git), рекомендуют в руководствах пользователя увеличить max_user_watches(1,2,3).

Насколько я понимаю, inotify «сообщает» ОС, что файл был изменен, вместо того, чтобы требовать от ОС «искать» изменения.

Я предполагаю, что в каждом каталоге создается файл "inotify". Это правильно? Есть ли способ взаимодействовать с inotify из командной строки?

Ресурсы
Почему события inotify отличаются при монтировании NFS?
Inotifyожидание большого количества файлов в каталоге

решение1

Inotify — это внутреннее средство ядра. Нет «файла inotify». Есть выделенные системные вызовыinotify_init,inotify_add_watchиinotify_rm_watchкоторые позволяют процессам регистрироваться, чтобы получать уведомления, когда происходят определенные события файловой системы. Когда происходит событие, процесс получает описание события через файловый дескриптор, возвращаемый inotify_init.

ОС не «сообщается», что файл был изменен: она знает, потому что она вносит изменения. Это приложению сообщается, что файл был изменен, вместо того, чтобы искать.

Программаinotifywaitпредоставляет простой способ использования inotify из командной строки.

Связанный контент