\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{jeu. mars 31 12:55:31 CEST 2016}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={inotify},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Surveillance des événements des systèmes de fichier},
CreationDate={D:20160331125531},
ModDate={D:20160331125531},
Keywords={inotify;linux features}
}}
\begin{document}
 
\begin{center}
{\Huge inotify }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Surveillance des événements des systèmes de fichier}
 
\vspace{10mm}
 
\hspace{1mm}  inotify est contrôlé par un jeu de 3 appels système et d’un fichier I/O normal retourné sur un descripteur de fichier.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} inotify\_init(2)]{Créé une instance inotify et renvoie un descripteur de fichier se référant à cette instance inotify. inotify\_init1(2) est similaire mais offre un argument flags qui fournis des fonctionnalités supplémentaires.}
\item[\hspace{1mm} inotify\_add\_watch(2)]{Manipule la liste de surveillance associée à une instance inotify. Chaque élément indique le chemin d'un fichier ou d'un répertoire avec un ensemble d'événements à surveiller.}
\item[\hspace{1mm} inotify\_rm\_watch(2)]{Retire un élément d'une liste de surveillance inotify}
\end{description}
 
\hspace{1mm} Pour déterminer quels événements ont lieu, une application lit le descripteur de fichier inotify avec read(2). Chaque lecture réussie renvoie un tampon contenant une ou plusieurs structures suivantes:
 
{\ttfamily
struct inotify\_event \{\\ \hspace{2mm}int wd; /*Descripteur de surveillance*/\\ \hspace{2mm}uint32\_t mask; /*Masque d'événements*/\\ \hspace{2mm}uint32\_t cookie; /*Cookie unique d'association des événements (pour rename(2))*/\\ \hspace{2mm}uint32\_t len; /*Taille du champ name*/\\ \hspace{2mm}char name\texttt{[}\texttt{]}; /*Nom optionnel terminé par un nul*/\\ \};\\
}
\vspace{8mm}
 
\begin{description} \normalsize
\item[\hspace{1mm} wd]{identifie l'élément de surveillance}
\item[\hspace{1mm} mask]{contient des bits décrivant l'événement}
\item[\hspace{1mm} cookie]{entier unique qui relie les événements. Utilisé uniquement pour les événements de renommage}
\item[\hspace{1mm} len]{Compte tous les octets de name, incluant les caractères nuls.}
\end{description}
 
\vspace{1cm}{\huge Événements inotify }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} IN\_ACCESS]{accès au fichier}
\item[\hspace{1mm} IN\_ATTRIB]{Modification des métadonnées, ex les permissions, horodatages, attributs étendus, compteur de liens, UID ou GID.}
\item[\hspace{1mm} IN\_CLOSE\_WRITE]{Fichier ouvert en écriture fermé}
\item[\hspace{1mm} IN\_CLOSE\_NOWRITE]{Fichier non ouvert en écriture fermé}
\item[\hspace{1mm} IN\_CREATE]{Fichier ou répertoire créé dans le répertoire surveillé}
\item[\hspace{1mm} IN\_DELETE]{Fichier ou répertoire supprimé dans le répertoire surveillé}
\item[\hspace{1mm} IN\_DELETE\_SELF]{Fichier ou répertoire surveillé supprimé ( ou déplacé dans un autre système de fichier)}
\item[\hspace{1mm} IN\_MODIFY]{Fichier modifié}
\item[\hspace{1mm} IN\_MOVE\_SELF]{Fichier ou répertoire surveillé déplacé}
\item[\hspace{1mm} IN\_MOVED\_FROM]{Généré pour le répertoire contenant l'ancien nom quand un fichier est renommé}
\item[\hspace{1mm} IN\_MOVED\_TO]{Généré pour le répertoire contenant le nouveau nom quand un fichier est renommé}
\item[\hspace{1mm} IN\_OPEN]{Fichier ouvert}
\item[\hspace{1mm} IN\_MOVE]{Équivalent à IN\_MOVED\_FROM | IN\_MOVED\_TO}
\item[\hspace{1mm} IN\_CLOSE]{Équivalent à IN\_CLOSE\_WRITE | IN\_CLOSE\_NOWRITE}
\item[\hspace{1mm} IN\_DONT\_FOLLOW]{e pas déréférencer pathname s'il s'agit d'un lien symbolique}
\item[\hspace{1mm} IN\_EXCL\_UNLINK]{Ne génère pas d'événements pour certaines entrées après leur suppression du répertoire surveillé}
\item[\hspace{1mm} IN\_MASK\_ADD]{Ajouter des événements au masque de surveillance de ce fichier s'il existe déjà (au lieu de remplacer le masque)}
\item[\hspace{1mm} IN\_ONESHOT]{Surveiller pathname jusqu'au premier événement, puis le supprimer de la liste de surveillance}
\item[\hspace{1mm} IN\_ONLYDIR]{Ne surveiller pathname que si c'est un répertoire}
\item[\hspace{1mm} IN\_IGNORED]{Le surveillant a été retiré explicitement au automatiquement}
\item[\hspace{1mm} IN\_ISDIR]{Le sujet de cet événement est un répertoire}
\item[\hspace{1mm} IN\_Q\_OVERFLOW]{File des événements surchargé}
\item[\hspace{1mm} IN\_UNMOUNT]{Le système de fichiers contenant l'objet surveillé a été démonté}
\end{description}
\end{flushleft}
\end{document}
