inotify_add_watch -
добавляет
сторожок к
инициализированному
экземпляру
inotify
Standard C library (
libc,
-lc)
#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()
возвращает
уникальный
дескриптор
сторожка
данного
экземпляра
inotify, для
объекта
файловой
системы
(иноды),
связанной
с
pathname. Если
ранее
объект
файловой
системы не
наблюдался
данным
экземпляром
inotify, то
создаётся
новый
дескриптор
сторожка.
Если
объект
файловой
системы
уже
отслеживался
(возможно,
через
другую
ссылку на
тот же
объект), то
возвращается
дескриптор
существующего
сторожка.
Дескриптор
сторожка
возвращается
при
последующих
операциях
read(2) из
файлового
дескриптора
inotify. При
чтении
извлекаются
структуры
inotify_event (см.
inotify(7)),
указывающие
на события
в файловой
системе;
дескриптор
сторожка
внутри
этой
структуры
определяет
объект, для
которого
произошло
событие.
On success,
inotify_add_watch() returns a watch descriptor (a nonnegative
integer). On error, -1 is returned and
errno is set to indicate the
error.
- EACCES
- Нет прав
на чтение
указанного
файла.
- EBADF
- Указан
неверный
файловый
дескриптор.
- EEXIST
- В mask
содержится
IN_MASK_CREATE и pathname
ссылается
на файл,
который
уже
отслеживается
тем же fd.
- EFAULT
-
pathname
указывает
за пределы
доступного
адресного
пространства.
- EINVAL
- Указанная
маска
событий не
содержит
допустимых
событий; mask
содержит
IN_MASK_ADD и IN_MASK_CREATE
одновременно;
fd не
является
файловым
дескриптором
inotify.
- ENAMETOOLONG
- Слишком
длинное
значение
аргумента
pathname.
- ENOENT
- Один из
каталогов
в pathname не
существует
или
является
повисшей
символьной
ссылкой.
- ENOMEM
- Недостаточное
количество
памяти
ядра.
- ENOSPC
- Достигнуто
максимальное
количество
сторожков
inotify
доступных
пользователю
или ядру не
удалось
выделить
необходимые
ресурсы.
- ENOTDIR
- В
значении
mask
содержится
IN_ONLYDIR и pathname не
является
каталогом.
Inotify был
добавлен в
ядро Linux
версии 2.6.13.
Данный
вызов есть
только в Linux.
Смотрите
inotify(7).
inotify_init(2),
inotify_rm_watch(2),
inotify(7)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitriy S. Seregin
<
[email protected]>, Yuri Kozlov <
[email protected]> и
Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]