Вы не можете заставить ядро только сообщать вам об изменении определенного пути. Причины немного тонкие:
В Linux файловый объект существует независимо от любых имен, которые он может иметь. Имена файлов на самом деле являются атрибутами их содержащей директории, и один файл может вызываться несколькими именами (см., Жесткая ссылка).
Ядро должно иметь что-то для прикрепления объектов inotify; он не может прикрепить объект к путевому файлу, поскольку он не является реальным объектом файловой системы; Вы должны прикрепить к родительскому каталогу или файлу, который описывает путь. Но вы не можете присоединиться к файлу, потому что вы смотрите, чтобы создать файл с заданным именем, а не изменить его.
Теоретически, ядро может реализовать API, который позволяет выбирать события для заданного пути при добавлении часов в каталог, почти так же, как он позволяет выбирать типы событий. Это раздуло бы API, и ядро в конце концов обработало бы те же данные и выполнило бы то же сравнение строк, что и в пользовательском пространстве.
Заметно ли снижение производительности при размещении часов в очень активном каталоге? Я не уверен, насколько вы активны; десятки файлов в секунду, сотни, миллионы?
В любом случае, я бы избегал access: это всегда будет гонкой. Файл может быть создан и удален между вызовами access, и вызов accessв очень узком цикле будет медленным, и это та проблема, которую inotifyнужно решить.
accessс,F_OKчтобы узнать, существует ли оно еще.