Provided by: manpages-fr_3.32d0.2p4-1_all bug

NOM

       inotify - Controler les evenements des systemes de fichiers

DESCRIPTION

       L'API  inotify  fournit  un  mecanisme pour controler les evenements au
       niveau des  systemes  de  fichiers.  Inotify  peut  etre  utilise  pour
       controler  des  fichiers  individuels  ou  des  repertoires.  Quand  un
       repertoire est controle, inotify va signaler  des  evenements  pour  le
       repertoire lui-meme et pour les fichiers de ce repertoire.

       Les   appels   systeme   suivants   sont   utilises  avec  cette  API :
       inotify_init(2)    (ou     inotify_init1(2)),     inotify_add_watch(2),
       inotify_rm_watch(2), read(2) et close(2).

       inotify_init(2)  cree une instance inotify et renvoie un descripteur de
       fichier se referant a cette  instance  inotify.  L'appel  systeme  plus
       recent  inotify_init1(2)  est  comme  inotify_init(2), mais fournit des
       fonctionnalites supplementaires.

       inotify_add_watch(2) manipule la << liste de surveillance >> associee a
       une  instance  inotify.  Chaque  element  (<< watch >>)  de la liste de
       surveillance specifie le chemin d'un fichier ou d'un  repertoire,  avec
       un  ensemble  d'evenements  que le noyau doit controler pour le fichier
       indique par ce chemin. inotify_add_watch(2) cree un nouvel  element  de
       surveillance ou modifie un element existant. Chaque element a un unique
       << descripteur   de   surveillance >>,   un    entier    renvoye    par
       inotify_add_watch(2) lorsque cet element est cree.

       inotify_rm_watch(2)  retire  un  element  d'une  liste  de surveillance
       inotify.

       Quand tous les descripteurs de  fichier  se  referant  a  une  instance
       inotify  ont  ete  fermes,  l'objet  sous-jacent et ses ressources sont
       liberes pour etre reutilises  par  le  noyau ;  tous  les  elements  de
       surveillance associes sont automatiquement liberes.

       Pour  determiner  quels evenements ont eu lieu, une application va lire
       avec read(2) le descripteur de fichier inotify. Si aucun evenement  n'a
       eu lieu, alors, en supposant qu'il s'agisse d'un descripteur de fichier
       bloquant, read(2) se bloquera jusqu'a ce qu'au moins un  evenement  ait
       lieu  (a  moins  qu'elle  ne soit interrompue par un signal, auquel cas
       l'appel echouera avec l'erreur EINTR ; consultez signal(7)).

       Chaque lecture (avec read(2)) reussie renvoie un tampon  contenant  une
       ou plusieurs des structures suivantes :

           struct inotify_event {
               int      wd;       /* Descripteur d'element de surveillance */
               uint32_t mask;     /* Masque d'evenements */
               uint32_t cookie;   /* Cookie unique d'association des
                                     evenements (pour rename(2)) */
               uint32_t len;      /* Taille du champ name */
               char     name[];   /* Nom optionnel termine par un nul */
           };

       wd  identifie  l'element  de  surveillance  pour lequel cet evenement a
       lieu. Il s'agit de l'un des descripteurs de  fichier  renvoyes  par  un
       precedent appel a inotify_add_watch(2).

       mask  contient  des  bits qui decrivent l'evenement qui a eu lieu (voir
       ci-dessous).

       cookie est  un  entier  unique  qui  relie  les  evenements.  Ce  n'est
       actuellement  utilise que pour les evenements de renommage, et permet a
       la paire d'evenements IN_MOVE_FROM et IN_MOVE_TO  en  resultant  d'etre
       associes par l'application.

       Le champ name n'est present que lorsqu'un evenement est renvoye pour un
       fichier au sein d'un repertoire surveille. Il identifie  le  chemin  du
       fichier  par rapport au repertoire surveille. Ce chemin est termine par
       un caractere nul et peut inclure d'autres octets nuls pour ajuster  des
       lectures successives a une limite d'adressage convenable.

       Le  champ  len  compte tous les octets de name, incluant les caracteres
       nuls.  La  longueur  de  chaque  structure  inotify_event   vaut   donc
       sizeof(inotify_event)+len.

       Le  comportement  lorsque le tampon donne a read(2) est trop petit pour
       renvoyer l'information sur le prochain evenement depend de  la  version
       du  noyau :  avant  2.6.21, read(2) renvoie 0 ; depuis le noyau 2.6.21,
       read(2) echoue avec l'erreur EINVAL.

   'Ev'enements inotify
       L'argument mask passe a inotify_add_watch(2) et le  champ  mask  de  la
       structure  inotify_event  renvoyes lors de la lecture avec read(2) d'un
       descripteur de fichier inotify sont tous  deux  des  bits  de  masquage
       identifiant  les  evenements  inotify.  Les  bits suivants peuvent etre
       definis dans l'argument mask lors de l'appel a inotify_add_watch(2)  et
       peuvent etre renvoyes via le champ mask retourne par read(2) :

           IN_ACCESS         Acces au fichier (lecture) (*).
           IN_ATTRIB         Modification  des  metadonnees,  par exemple, les
                             permissions,  les  horodatages,   les   attributs
                             etendus,    le    compteur   de   liens   (depuis
                             Linux 2.6.25), UID, GID, etc. (*).
           IN_CLOSE_WRITE    Fichier ouvert en ecriture ferme (*).
           IN_CLOSE_NOWRITE  Fichier non ouvert en ecriture ferme (*).
           IN_CREATE         Fichier/rep. cree dans  le  repertoire  surveille
                             (*).
           IN_DELETE         Fichier/repertoire  supprime  dans  le repertoire
                             surveille (*).
           IN_DELETE_SELF    Fichier/repertoire surveille supprime.
           IN_MODIFY         Fichier modifie (*).
           IN_MOVE_SELF      Fichier/repertoire surveille deplace.
           IN_MOVED_FROM     Fichier deplace hors du repertoire surveille (*).
           IN_MOVED_TO       Fichier deplace dans le repertoire surveille (*).
           IN_OPEN           Fichier ouvert (*).

       Lors de la surveillance d'un repertoire, les evenements marques par  un
       asterisque  (*)  ci-dessus  peuvent  avoir  lieu  pour  des fichiers du
       repertoire, auquel cas le champ name dans  la  structure  inotify_event
       renvoyee identifie le nom du fichier dans ce repertoire.

       La macro IN_ALL_EVENTS est definie comme un bit de masquage de tous les
       evenements decrits ci-dessus. Cette  macro  peut  etre  utilisee  comme
       l'argument mask lors de l'appel a inotify_add_watch(2).

       Deux  macros  supplementaires  sont disponibles : IN_MOVE, equivalent a
       IN_MOVED_FROM|IN_MOVED_TO,     et      IN_CLOSE,      equivalent      a
       IN_CLOSE_WRITE|IN_CLOSE_NOWRITE.

       Les bits supplementaires suivants peuvent etre indiques dans l'argument
       mask lors de l'appel a inotify_add_watch(2) :

           IN_DONT_FOLLOW (depuis Linux 2.6.15)
                             Ne pas dereferencer  pathname  s'il  s'agit  d'un
                             lien symbolique.
           IN_EXCL_UNLINK (depuis Linux 2.6.36)
                             Par  defaut, lors de la surveillance d'evenements
                             sur les entrees d'un repertoire,  des  evenements
                             sont  crees  pour  ces  entrees  meme  apres leur
                             suppression du repertoire. De nombreux evenements
                             ininteressants    pour   certaines   applications
                             peuvent ainsi etre crees (par exemple, lors de la
                             surveillance    de   /tmp,   ou   de   nombreuses
                             applications creent des fichiers temporaires donc
                             les  noms sont immediatement supprimes). Indiquer
                             IN_EXCL_UNLINK  modifie   le   comportement   par
                             defaut,  de  telle sorte qu'aucun evenement n'est
                             cree pour ces entrees apres leur  suppression  du
                             repertoire surveille.
           IN_MASK_ADD       Ajouter  les evenements au masque de surveillance
                             de ce  fichier  s'il  existe  deja  (au  lieu  de
                             remplacer le masque).
           IN_ONESHOT        Surveiller  pathname  jusqu'au premier evenement,
                             puis le supprimer de la liste de surveillance
           IN_ONLYDIR (depuis Linux 2.6.15)
                             Ne  surveiller   pathname   que   si   c'est   un
                             repertoire.

       Les  bits suivants peuvent avoir ete definis dans le champ mask renvoye
       par read(2) :

           IN_IGNORED        Le  surveillant  a   ete   retire   explicitement
                             (inotify_rm_watch(2))   ou   automatiquement  (le
                             fichier a ete efface, ou le systeme de fichiers a
                             ete demonte)
           IN_ISDIR          Le sujet de cet evenement est un repertoire.
           IN_Q_OVERFLOW     Queue  des  evenements  surchargee (wd vaut alors
                             -1).
           IN_UNMOUNT        Le  systeme   de   fichiers   contenant   l'objet
                             surveille a ete demonte.

   Interfaces /proc
       Les  interfaces  suivantes  peuvent  etre  utilisees  pour  limiter  la
       quantite de memoire du noyau utilisee par inotify :

       /proc/sys/fs/inotify/max_queued_events
              La valeur dans ce fichier est  utilisee  lorsqu'une  application
              appelle  inotify_init(2)  pour  definir  la  limite  maximale du
              nombre des evenements qui peuvent entrer dans la file  d'attente
              de  l'instance inotify correspondante. Les evenements au-dela de
              cette limite sont annules, mais un evenement  IN_Q_OVERFLOW  est
              systematiquement genere.

       /proc/sys/fs/inotify/max_user_instances
              Cela  specifie  la limite maximale du nombre d'instances inotify
              qui peuvent etre creees par identifiant utilisateur reel.

       /proc/sys/fs/inotify/max_user_watches
              Cela specifie la limite maximale du nombre de << watches >>  qui
              peuvent etre creees par identifiant utilisateur reel.

VERSIONS

       Inotify  a  ete  inclus  dans  le  noyau  Linux 2.6.13.  Les interfaces
       bibliotheque necessaires ont ete ajoutees a glibc dans  la  version 2.4
       (IN_DONT_FOLLOW,  IN_MASK_ADD  et  IN_ONLYDIR  ont ete ajoutees dans la
       version 2.5).

CONFORMIT'E

       L'API inotify est specifique Linux.

NOTES

       Les descripteurs de fichier inotify peuvent etre controles en utilisant
       select(2),  poll(2) et epoll(7). Lorsqu'un evenement est disponible, le
       descripteur de fichier indique qu'il est accessible en lecture.

       Depuis Linux 2.6.25, il est possible d'etre  notifie  par  des  signaux
       pour   des   entrees-sorties  des  descripteurs  de  fichier  inotify ;
       consultez la discussion de F_SETFL (pour la configuration de l'attribut
       O_ASYNC),  F_SETOWN,  et F_SETSIG dans fcntl(2). La structure siginfo_t
       (decrite dans sigaction(2)) qui est passee au gestionnaire de signal  a
       les  champs  suivants  definis :  si_fd  est  defini  avec le numero de
       descripteur de fichiers inotify ; si_signo est defini avec le numero du
       signal ;  si_code  est defini avec POLL_IN ; et si_band est defini avec
       POLLIN.

       Si deux  evenements  inotify  de  sortie  successifs  produits  sur  le
       descripteur  de  fichier  inotify sont identiques (wd, mask, cookie, et
       name identiques), alors ils sont fusionnes  en  un  seul  evenement  si
       l'evenement  le  plus ancien n'a toujours pas ete lu (mais consultez la
       section BOGUES).

       Les evenements renvoyes lors de la lecture d'un descripteur de  fichier
       inotify  forment  une file ordonnee. Ainsi, par exemple, il est garanti
       que lors du renommage d'un repertoire, les evenements  seront  produits
       dans l'ordre convenable sur le descripteur de fichier inotify.

       L'ioctl(2)  FIONREAD  renvoie  le  nombre  d'octets disponibles pour la
       lecture d'un descripteur de fichier inotify.

   Limites et r'eserves
       La surveillance inotify des  repertoires  n'est  pas  recursive :  pour
       surveiller   les   sous-repertoires,   des   elements  de  surveillance
       supplementaires doivent etre crees. Cela peut etre assez long pour  les
       repertoires contenant une grande arborescence.

       L'interface  inotify ne fournit aucune information sur l'utilisateur ou
       le processus qui a declenche l'evenement inotify.

       Veuillez noter que la file d'evenements peut deborder. Dans ce cas, des
       evenements   sont  perdus.  Les  applications  robustes  doivent  gerer
       correctement la possibilite de perdre des evenements.

       L'interface inotify identifie  les  fichiers  affectes  par  leur  nom.
       Cependant,  au  moment ou l'application traite un evenement inotify, ce
       nom de fichier peut avoir deja ete supprime ou renomme.

       Si on supervise un repertoire dans son integralite, et  si  un  nouveau
       sous-repertoire  est  cree  dans  ce  repertoire, faites bien attention
       qu'au moment ou vous creez un element de surveillance  sur  le  nouveau
       sous-repertoire, de nouveaux fichiers peuvent avoir deja ete crees dans
       le  sous-repertoire.  Ainsi,  vous  devriez  analyser  le  contenu   du
       sous-repertoire   immediatement   apres   avoir   ajoute  l'element  de
       surveillance.

BOGUES

       Dans les noyaux anterieurs a 2.6.16, l'attribut IN_ONESHOT de  mask  ne
       fonctionne pas.

       Avant  le noyau 2.6.25, le code du noyau qui etait sense regrouper deux
       evenements successifs (c'est-a-dire que les deux  evenements  les  plus
       recents  pouvaient  etre  fusionnes  si le plus ancien des deux n'avait
       toujours pas ete lu) verifiait a la place si l'evenement le plus recent
       pouvait etre fusionne a l'evenement non lu le plus ancien.

VOIR AUSSI

       inotify_add_watch(2),         inotify_init(2),        inotify_init1(2),
       inotify_rm_watch(2),                 read(2),                  stat(2),
       Documentation/filesystems/inotify.txt.

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).    Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.