Scroll to navigation

INOTIFY_ADD_WATCH(2) Руководство программиста Linux INOTIFY_ADD_WATCH(2)

ИМЯ

inotify_add_watch - добавляет сторожок к инициализированному экземпляру inotify

ОБЗОР

#include <sys/inotify.h>

int inotify_add_watch(int fd, const char *pathname, uint32_t mask);

ОПИСАНИЕ

Вызов inotify_add_watch() добавляет новый сторожок (watch) или изменяет существующий, для файла, чьё расположение указано в pathname; вызывающий должен иметь право читать этот файл. Аргумент fd является файловым дескриптором, ссылающимся на экземпляр inotify, у которого изменяется список сторожков. Отслеживаемые с pathname события указываются маской битов в аргументе mask. Описание битов mask смотрите в inotify(7).

При успешном выполнении inotify_add_watch() возвращает уникальный дескриптор сторожка, связанный с pathname для данного экземпляра inotify. Если ранее pathname на наблюдался данным экземпляром inotify, то создаётся новый дескриптор сторожка. Если pathname уже отслеживался, то возвращается дескриптор существующего сторожка.

Дескриптор сторожка возвращается при последующих операциях read(2) из файлового дескриптора inotify. При чтении извлекаются структуры inotify_event (см. inotify(7)), указывающие на события в файловой системе; дескриптор сторожка внутри этой структуры определяет объект, для которого произошло событие.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При удачном завершении inotify_add_watch() возвращает неотрицательный дескриптор сторожка. При ошибке возвращается -1, а значение errno устанавливается соответствующим образом.

ОШИБКИ

Нет прав на чтение указанного файла.
Указан неверный файловый дескриптор.
pathname указывает за пределы доступного адресного пространства.
Указанная маска событий не содержит допустимых событий; или fd не является файловым дескриптором inotify.
Один из каталогов в pathname не существует или является повисшей символьной ссылкой.
Недостаточное количество памяти ядра.
Достигнуто максимальное количество сторожков inotify доступных пользователю или ядру не удалось выделить необходимые ресурсы.

ВЕРСИИ

Inotify был добавлен в ядро Linux версии 2.6.13.

СООТВЕТСТВИЕ СТАНДАРТАМ

Данный вызов есть только в Linux.

СМОТРИТЕ ТАКЖЕ

inotify_init(2), inotify_rm_watch(2), inotify(7)

2010-10-20 Linux