inotify_init
(PECL inotify >= 0.1.2)
inotify_init — Initialise une instance inotify
Description
Initialise une instance inotify pour utiliser avec la fonction inotify_add_watch()
Exemples
Exemple #1 Exemple d'utilisatio d'inotify
<?php
// Crée une instance inotify
$fd = inotify_init();
// Surveille les modifications des métadonées du fichier __FILE__ (e.g. mtime)
$watch_descriptor = inotify_add_watch($fd, __FILE__, IN_ATTRIB);
// Génère un événement
touch(__FILE__);
// Lit les événements
$events = inotify_read($fd);
print_r($events);
// Les méthodes suivantes permettent d'utiliser les fonctions inotify sans bloquer sur inotify_read():
// - Utiliser stream_select() sur $fd:
$read = array($fd);
$write = null;
$except = null;
stream_select($read,$write,$except,0);
// - Utiliser stream_set_blocking() sur $fd
stream_set_blocking($fd, 0);
inotify_read($fd); // Does no block, and return false if no events are pending
// - Utiliser inotify_queue_len() pour vérifier la taille de la file d'attente
$queue_len = inotify_queue_len($fd); // If > 0, inotify_read() will not block
// Arrêt de la surveillance de __FILE__
inotify_rm_watch($fd, $watch_descriptor);
// Destruction de l'instance inotify
// Cela aurait arrêté toutes les surveillances si ce n'était pas déjà fait
fclose($fd);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
array( array( 'wd' => 1, // Egale le $watch_descriptor 'mask' => 4, // Le bit IN_ATTRIB est activé 'cookie' => 0, // identifiant uique pour relier des événements (e.g. // IN_MOVE_FROM et IN_MOVE_TO) 'name' => '', // Le nom du fichier (e.g. si un dossier était sous surveillance) ), );
Voir aussi
- inotify_add_watch() - Ajoute un point de surveillance à une instance inotify
- inotify_rm_watch() - Supprime un point de surveillance d'une instance inotify
- inotify_queue_len() - Retourne le nombre d'événements qui sont survenus
- inotify_read() - Lit les événements dans une instance inotify
- fclose() - Ferme un fichier
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.inotify-init.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.