inotify_init(2)

ИМЯ
inotify_init, inotify_init1 - инициализирует экземпляр inotify

LIBRARY
Standard C library (libc, -lc)

СИНТАКСИС
#include <sys/inotify.h>

int inotify_init(void);
int inotify_init1(int flags);

ОПИСАНИЕ
Обзор программного интерфейса inotify смотрите в inotify(7).

inotify_init() инициализирует новый экземпляр inotify и возвращает файловый дескриптор, связанный с очередью событий нового inotify.

Если flags равен 0, то inotify_init1() выполняет тоже, что и inotify_init(). Чтобы получить другое поведение, следующие значения могут быть сложены с помощью побитового ИЛИ в flags:

IN_NONBLOCK
    Устанавливает флаг состояния файла O_NONBLOCK для нового открытого файлового описания (смотрите open(2)), на которое ссылается новый файловый дескриптор. Использование данного флага делает ненужными дополнительные вызовы fcntl(2) для достижения того же результата.

IN_CLOEXEC
    Устанавливает флаг close-on-exec (FD_CLOEXEC) для нового открытого файлового дескриптора. Смотрите описание флага O_CLOEXEC в open(2) для того, чтобы узнать как это может пригодиться.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении данные системные вызовы возвращают новый файловый дескриптор. При ошибке возвращается -1 и errno устанавливается в соответствующее значение.

ОШИБКИ

EINVAL
    (inotify_init1()) Указано неверное значение в flags.

EMFILE
    Достигнуто максимальное количество экземпляров inotify доступных пользователю.

EMFILE
    Было достигнуто ограничение по количеству открытых файловых дескрипторов на процесс.

ENFILE
    Достигнуто максимальное количество открытых файлов в системе.

ENOMEM
    Не хватает памяти ядра.

ВЕРСИИ
inotify_init() first appeared in Linux 2.6.13; library support was added in glibc 2.4. inotify_init1() was added in Linux 2.6.27; library support was added in glibc 2.9.

СТАНДАРТЫ
Данные системные вызовы есть только в Linux.

СМ. ТАКЖЕ
inotify_add_watch(2), inotify_rm_watch(2), inotify(7)

ПЕРЕВОД
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 (https://www.gnu.org/licenses/gpl-3.0.html) или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.