inotify_init

(PECL inotify >= 0.1.2)

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

Описание

inotify_init ( ) : resource

Инициализирует экземпляр 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($fd0);
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,     // Equals $watch_descriptor
    'mask' => 4,   // IN_ATTRIB bit is set
    'cookie' => 0, // unique id to connect related events (e.g. 
                   // IN_MOVE_FROM and IN_MOVE_TO events)
    'name' => '',  // the name of a file (e.g. if we monitored changes
                   // in a directory)
  ),
);

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

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