Инициализирует экземпляр inotify

# inotify_init

(PECL inotify >= 0.1.2)

inotify_init — Инициализирует экземпляр inotify

### Описание

function inotify_init(): resource|false

Инициализирует экземпляр inotify для работы с функцией inotify_add_watch().

### Список параметров

Сигнатура функции не содержит параметров.

### Возвращаемые значения

Возвращает ресурс потока или `false`.

### Примеры

Пример #1 Пример использования функции inotify

    <?php

    // Создаём экземпляр inotify
    $fd = inotify_init();

    // Отслеживаем изменение метаданных файла __FILE__ (например, метки mtime)
    $watch_descriptor = inotify_add_watch($fd, __FILE__, IN_ATTRIB);

    // Генерируем событие
    touch(__FILE__);

    // Читаем события
    $events = inotify_read($fd);
    print_r($events);

    // Следующие методы разрешают использовать функции объекта inotify без блокировки при чтении событий функцией inotify_read():

    // - Вызываем функцию stream_select() для файлового дескриптора $fd:
    $read = array($fd);
    $write = null;
    $except = null;
    stream_select($read, $write, $except, 0);

    // - Вызываем функцию stream_set_blocking() для файлового дескриптора $fd
    stream_set_blocking($fd, 0);
    inotify_read($fd); // Не блокирует и возвращает false, если нет ожидающих событий

    // - Вызываем функцию inotify_queue_len(), чтобы проверить, не пуста ли очередь событий
    $queue_len = inotify_queue_len($fd); // Если значение > 0, функция inotify_read() не заблокирует выполнение

    // Заканчиваем наблюдение за файлом __FILE__
    inotify_rm_watch($fd, $watch_descriptor);

    // Закрываем экземпляр inotify
    // Это закончит наблюдения
    fclose($fd);

    ?>

Вывод приведённого примера будет похож на:

    array(
      array(
        'wd' => 1,     // Соответствует дескриптору наблюдения $watch_descriptor
        'mask' => 4,   // Установлен бит IN_ATTRIB
        'cookie' => 0, // Уникальный идентификатор для подключения связанных событий (например,
                       // события IN_MOVE_FROM и IN_MOVE_TO)
        'name' => '',  // Название файла (например, если мы отслеживали изменения
                       // в каталоге)
      ),
    );

### Смотрите также

- inotify_add_watch() - Добавляет элемент наблюдения для объекта inotify
- inotify_rm_watch() - Удаляет наблюдение из экземпляра inotify
- inotify_queue_len() - Возвращает число больше нуля, если есть ожидающие события
- inotify_read() - Читает события из экземпляра inotify
- fclose() - Закрывает открытый дескриптор файла

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open