# French translation of manpages # This file is distributed under the same license as the manpages-l10n package. # Copyright © of this file: # Christophe Blaess , 1996-2003. # Stéphan Rafin , 2002. # Thierry Vignaud , 1999, 2002. # François Micaux, 2002. # Alain Portal , 2003-2008. # Jean-Philippe Guérard , 2005-2006. # Jean-Luc Coulon (f5ibh) , 2006-2007. # Julien Cristau , 2006-2007. # Thomas Huriaux , 2006-2008. # Nicolas François , 2006-2008. # Florentin Duneau , 2006-2010. # Simon Paillard , 2006. # Denis Barbier , 2006, 2010. # David Prévot , 2010, 2012-2014. # Jean-Paul Guillonneau , 2021. msgid "" msgstr "" "Project-Id-Version: perkamon\n" "POT-Creation-Date: 2024-03-01 16:56+0100\n" "PO-Revision-Date: 2021-10-21 15:09+0200\n" "Last-Translator: Jean-Paul Guillonneau \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: vim\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "B" msgid "fanotify" msgstr "B" #. type: TH #: archlinux fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "31 octobre 2023" #. type: TH #: archlinux fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "Pages du manuel de Linux 6.06" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "NOM" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "fanotify - monitoring filesystem events" msgstr "fanotify – Surveiller les événements des systèmes de fichiers" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "DESCRIPTION" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The fanotify API provides notification and interception of filesystem " "events. Use cases include virus scanning and hierarchical storage " "management. In the original fanotify API, only a limited set of events was " "supported. In particular, there was no support for create, delete, and move " "events. The support for those events was added in Linux 5.1. (See " "B(7) for details of an API that did notify those events pre Linux " "5.1.)" msgstr "" "L’interface de programmation fanotify permet la notification et " "l’interception des événements du système de fichiers. La recherche de virus " "et la gestion de stockage hiérarchisé font partie des cas d’utilisation. " "Dans l’interface originelle seul un ensemble limité d’événements était pris " "en charge. En particulier, les événements de création, de suppression ou de " "déplacement n’étaient pas pris en charge. La prise en charge de ces " "évènements a été ajoutée dans Linux 5.1. Consultez B(7) pour plus " "de précisions sur l’interface qui ne notifiait pas ces évènements avant " "Linux 5.1." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Additional capabilities compared to the B(7) API include the " "ability to monitor all of the objects in a mounted filesystem, the ability " "to make access permission decisions, and the possibility to read or modify " "files before access by other applications." msgstr "" "La capacité de surveiller tous les objets d’un système de fichiers monté, la " "capacité de décider des droits d’accès et la possibilité de lire ou modifier " "les fichiers avant qu’ils ne soient accédés par d’autres applications font " "partie des capacités supplémentaires à celles de l’interface de " "programmation B(7)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following system calls are used with this API: B(2), " "B(2), B(2), B(2), and B(2)." msgstr "" "Les appels système suivants sont utilisés avec cette interface de " "programmation : B(2), B(2), B(2), " "B(2) et B(2)." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "fanotify_init(), fanotify_mark(), and notification groups" msgstr "fanotify_init(), fanotify_mark() et groupes de notification" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B(2) system call creates and initializes an fanotify " "notification group and returns a file descriptor referring to it." msgstr "" "L’appel système B(2) crée et initialise un groupe de " "notifications fanotify et renvoie un descripteur de fichier le référençant." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "An fanotify notification group is a kernel-internal object that holds a list " "of files, directories, filesystems, and mounts for which events shall be " "created." msgstr "" "Un groupe de notifications fanotify est un objet interne au noyau qui " "contient une liste de fichiers, répertoires et points de montage pour " "lesquels des événements seront créés." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For each entry in an fanotify notification group, two bit masks exist: the " "I mask and the I mask. The mark mask defines file activities " "for which an event shall be created. The ignore mask defines activities for " "which no event shall be generated. Having these two types of masks permits " "a filesystem, mount, or directory to be marked for receiving events, while " "at the same time ignoring events for specific objects under a mount or " "directory." msgstr "" "Pour chaque entrée dans un groupe de notifications fanotify, deux masques " "binaires sont présents : le masque I et le masque I. Le masque " "I définit les activités de fichier pour lesquelles un événement doit " "être créé. Le masque I définit les activités pour lesquelles aucun " "événement ne doit être créé. Avoir ces deux types de masque permet à un " "point de montage ou à un répertoire d’être marqué pour recevoir des " "événements, tout en ignorant en même temps les événements pour des objets " "spécifiques dans ce point de montage ou répertoire." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B(2) system call adds a file, directory, filesystem, or " "mount to a notification group and specifies which events shall be reported " "(or ignored), or removes or modifies such an entry." msgstr "" "L’appel système B(2) ajoute un fichier, répertoire ou point " "de montage à un groupe de notifications et indique les événements qui " "doivent être signalés (ou ignorés), ou supprime ou modifie une telle entrée." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A possible usage of the ignore mask is for a file cache. Events of interest " "for a file cache are modification of a file and closing of the same. Hence, " "the cached directory or mount is to be marked to receive these events. " "After receiving the first event informing that a file has been modified, the " "corresponding cache entry will be invalidated. No further modification " "events for this file are of interest until the file is closed. Hence, the " "modify event can be added to the ignore mask. Upon receiving the close " "event, the modify event can be removed from the ignore mask and the file " "cache entry can be updated." msgstr "" "Le masque I peut servir pour un cache de fichier. Les événements " "intéressants pour un cache de fichier sont la modification et la fermeture " "d’un fichier. Ainsi, le répertoire ou point de montage en cache va être " "marqué pour recevoir ces événements. Après la réception du premier événement " "informant qu’un fichier a été modifié, l’entrée correspondante du cache sera " "désactivée. Aucun autre événement de modification pour ce fichier ne sera " "utile jusqu’à sa fermeture. Ainsi, l’événement de modification peut être " "ajouté au masque ignore. Lors de la réception d’un événement de fermeture, " "l’événement de modification peut être supprimé du masque I et " "l’entrée de cache de fichier peut être mise à jour." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The entries in the fanotify notification groups refer to files and " "directories via their inode number and to mounts via their mount ID. If " "files or directories are renamed or moved within the same mount, the " "respective entries survive. If files or directories are deleted or moved to " "another mount or if filesystems or mounts are unmounted, the corresponding " "entries are deleted." msgstr "" "Les entrées des groupes de notification fanotify font référence aux fichiers " "et répertoires à l’aide de leur numéro d’inœud et aux montages à l’aide de " "leur identifiant de montage. Si les fichiers ou répertoires sont renommés ou " "déplacés dans le même montage, les entrées correspondantes survivent. Si les " "fichiers ou répertoires sont supprimés ou déplacés dans un autre montage ou " "si les montages sont démontés, les entrées correspondantes sont supprimées." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "The event queue" msgstr "La file d’événements" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "As events occur on the filesystem objects monitored by a notification group, " "the fanotify system generates events that are collected in a queue. These " "events can then be read (using B(2) or similar) from the fanotify " "file descriptor returned by B(2)." msgstr "" "Comme les événements surviennent sur les objets de système de fichiers " "surveillés par un groupe de notifications, le système fanotify génère les " "événements qui sont collectés dans une file. Ces événements peuvent être lus " "(en utilisant B(2) ou similaire) à partir du descripteur de fichier " "fanotify renvoyé par B(2)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Two types of events are generated: I events and I " "events. Notification events are merely informative and require no action to " "be taken by the receiving application with one exception: if a valid file " "descriptor is provided within a generic event, the file descriptor must be " "closed. Permission events are requests to the receiving application to " "decide whether permission for a file access shall be granted. For these " "events, the recipient must write a response which decides whether access is " "granted or not." msgstr "" "Deux types d’événements sont créés : les événements de I et " "les événements de I. Les événements de notification sont surtout " "informatifs et ne nécessitent pas d’action à prendre par l’application qui " "les reçoit à part pour la fermeture du descripteur de fichier valable passé " "dans l’événement (voir ci-dessous). Les événements de permission sont des " "demandes à l’application qui les reçoit pour décider si les droits d’accès à " "un fichier doivent être attribués. Pour ces événements, le destinataire doit " "écrire une réponse qui décide d’attribuer l’accès ou non." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "An event is removed from the event queue of the fanotify group when it has " "been read. Permission events that have been read are kept in an internal " "list of the fanotify group until either a permission decision has been taken " "by writing to the fanotify file descriptor or the fanotify file descriptor " "is closed." msgstr "" "Un événement est supprimé de la file d’événements du groupe fanotify quand " "il a été lu. Les événements de permission qui ont été lus sont gardés dans " "une liste interne du groupe fanotify jusqu’à ce qu’une décision " "d’attribution de droits ait été prise en écrivant dans le descripteur de " "fichier fanotify ou que le descripteur de fichier fanotify soit fermé." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Reading fanotify events" msgstr "Lecture d’événements fanotify" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Calling B(2) for the file descriptor returned by B(2) " "blocks (if the flag B is not specified in the call to " "B(2)) until either a file event occurs or the call is " "interrupted by a signal (see B(7))." msgstr "" "Appeler B(2) pour le descripteur de fichier renvoyé par " "B(2) bloque (si l’attribut B n’est pas indiqué " "dans l’appel de B(2)) jusqu’à ce qu’un événement de fichier " "survienne ou que l’appel soit interrompu par un signal (consultez " "B(7))." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "After a successful B(2), the read buffer contains one or more of the " "following structures:" msgstr "" "Après un B(2) réussi, le tampon de lecture contient une ou plus des " "structures suivantes :" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "struct fanotify_event_metadata {\n" " __u32 event_len;\n" " __u8 vers;\n" " __u8 reserved;\n" " __u16 metadata_len;\n" " __aligned_u64 mask;\n" " __s32 fd;\n" " __s32 pid;\n" "};\n" msgstr "" "struct fanotify_event_metadata {\n" " __u32 event_len;\n" " __u8 vers;\n" " __u8 reserved;\n" " __u16 metadata_len;\n" " __aligned_u64 mask;\n" " __s32 fd;\n" " __s32 pid;\n" "};\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Information records are supplemental pieces of information that may be " "provided alongside the generic I structure. The " "I passed to B(2) have influence over the type of " "information records that may be returned for an event. For example, if a " "notification group is initialized with B or " "B, then event listeners should also expect to receive a " "I structure alongside the " "I structure, whereby file handles are used to " "identify filesystem objects rather than file descriptors. Information " "records may also be stacked, meaning that using the various B " "flags in conjunction with one another is supported. In such cases, multiple " "information records can be returned for an event alongside the generic " "I structure. For example, if a notification group " "is initialized with B and B, then " "an event listener should expect to receive up to two " "I information records and one " "I information record alongside the generic " "I structure. Importantly, fanotify provides no " "guarantee around the ordering of information records when a notification " "group is initialized with a stacked based configuration. Each information " "record has a nested structure of type I. It is " "imperative for event listeners to inspect the I field of this " "structure in order to determine the type of information record that had been " "received for a given event." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "In case of an fanotify group that identifies filesystem objects by file " #| "handles, you should also expect to receive one or more additional " #| "information records of the structure detailed below following the generic " #| "I structure within the read buffer:" msgid "" "In cases where an fanotify group identifies filesystem objects by file " "handles, event listeners should also expect to receive one or more of the " "below information record objects alongside the generic " "I structure within the read buffer:" msgstr "" "Dans le cas d’un groupe fanotify qui identifie des objets de système de " "fichiers par des gestionnaires de fichiers, sont attendus un ou plusieurs " "enregistrements d’informations supplémentaires de la structure détaillée ci-" "dessous qui suit la structure générique I dans le " "tampon de lecture :" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron #, fuzzy, no-wrap #| msgid "" #| "struct fanotify_event_info_fid {\n" #| " struct fanotify_event_info_header hdr;\n" #| " __kernel_fsid_t fsid;\n" #| " unsigned char file_handle[0];\n" #| "};\n" msgid "" "struct fanotify_event_info_fid {\n" " struct fanotify_event_info_header hdr;\n" " __kernel_fsid_t fsid;\n" " unsigned char handle[];\n" "};\n" msgstr "" "struct fanotify_event_info_fid {\n" " struct fanotify_event_info_header hdr;\n" " __kernel_fsid_t fsid;\n" " unsigned char file_handle[0];\n" "};\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "In case of an fanotify group that identifies filesystem objects by file " #| "handles, you should also expect to receive one or more additional " #| "information records of the structure detailed below following the generic " #| "I structure within the read buffer:" msgid "" "In cases where an fanotify group is initialized with B, " "event listeners should expect to receive the below information record object " "alongside the generic I structure within the read " "buffer:" msgstr "" "Dans le cas d’un groupe fanotify qui identifie des objets de système de " "fichiers par des gestionnaires de fichiers, sont attendus un ou plusieurs " "enregistrements d’informations supplémentaires de la structure détaillée ci-" "dessous qui suit la structure générique I dans le " "tampon de lecture :" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "" #| "struct fanotify_event_info_fid {\n" #| " struct fanotify_event_info_header hdr;\n" #| " __kernel_fsid_t fsid;\n" #| " unsigned char file_handle[0];\n" #| "};\n" msgid "" "struct fanotify_event_info_pidfd {\n" " struct fanotify_event_info_header hdr;\n" " __s32 pidfd;\n" "};\n" msgstr "" "struct fanotify_event_info_fid {\n" " struct fanotify_event_info_header hdr;\n" " __kernel_fsid_t fsid;\n" " unsigned char file_handle[0];\n" "};\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In case of a B event, an additional information record " "describing the error that occurred is returned alongside the generic " "I structure within the read buffer. This structure " "is defined as follows:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "" #| "struct fanotify_event_info_fid {\n" #| " struct fanotify_event_info_header hdr;\n" #| " __kernel_fsid_t fsid;\n" #| " unsigned char file_handle[0];\n" #| "};\n" msgid "" "struct fanotify_event_info_error {\n" " struct fanotify_event_info_header hdr;\n" " __s32 error;\n" " __u32 error_count;\n" "};\n" msgstr "" "struct fanotify_event_info_fid {\n" " struct fanotify_event_info_header hdr;\n" " __kernel_fsid_t fsid;\n" " unsigned char file_handle[0];\n" "};\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "All information records contain a nested structure of type " "I. This structure holds meta-information about " "the information record that may have been returned alongside the generic " "I structure. This structure is defined as follows:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "" #| "struct fanotify_event_info_header {\n" #| " __u8 info_type;\n" #| " __u8 pad;\n" #| " __u16 len;\n" #| "};\n" msgid "" "struct fanotify_event_info_header {\n" "\t__u8 info_type;\n" "\t__u8 pad;\n" "\t__u16 len;\n" "};\n" msgstr "" "struct fanotify_event_info_header {\n" " __u8 info_type;\n" " __u8 pad;\n" " __u16 len;\n" "};\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For performance reasons, it is recommended to use a large buffer size (for " "example, 4096 bytes), so that multiple events can be retrieved by a single " "B(2)." msgstr "" "Pour des raisons de performances, une grande taille de tampon (par exemple " "4096 octets) est conseillée pour que plusieurs événements puissent être " "récupérés en une seule lecture." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The return value of B(2) is the number of bytes placed in the buffer, " "or -1 in case of an error (but see BUGS)." msgstr "" "La valeur de retour de B(2) est le nombre d’octets placés dans le " "tampon, ou B<-1> en cas d’erreur (mais consultez B)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The fields of the I structure are as follows:" msgstr "" "Les champs de la structure I sont les suivants." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is the length of the data for the current event and the offset to the " "next event in the buffer. Unless the group identifies filesystem objects by " "file handles, the value of I is always " "B. For a group that identifies filesystem objects " "by file handles, I also includes the variable length file " "identifier records." msgstr "" "C’est la taille des données pour l’événement actuel et la position du " "prochain événement dans le tampon. À moins que le groupe identifie des " "objets du système de fichiers par des gestionnaires de fichiers, la valeur " "d’I est toujours B. Pour un groupe qui " "identifie les objets du système de fichiers par des gestionnaires de " "fichiers, I inclut aussi des enregistrements d’identificateur de " "fichier de taille variable." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This field holds a version number for the structure. It must be compared to " "B to verify that the structures returned at run " "time match the structures defined at compile time. In case of a mismatch, " "the application should abandon trying to use the fanotify file descriptor." msgstr "" "Ce champ contient un numéro de version pour la structure. Il doit être " "comparé à B pour vérifier que les structures " "renvoyées pendant l’exécution correspondent aux structures définies à la " "compilation. En cas d’erreur de correspondance, l’application devrait " "arrêter d’essayer d’utiliser le descripteur de fichier fanotify." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This field is not used." msgstr "Ce champ n’est pas utilisé." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is the length of the structure. The field was introduced to facilitate " "the implementation of optional headers per event type. No such optional " "headers exist in the current implementation." msgstr "" "C’est la taille de la structure. Le champ a été introduit pour faciliter " "l’implémentation d’en-têtes facultatifs par type d’événement. Aucun en-tête " "facultatif n’existe dans l’implémentation actuelle." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This is a bit mask describing the event (see below)." msgstr "C’est un masque binaire décrivant l’événement (voir ci-dessous)." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is an open file descriptor for the object being accessed, or " "B if a queue overflow occurred. With an fanotify group that " "identifies filesystem objects by file handles, applications should expect " "this value to be set to B for each event that is received. The " "file descriptor can be used to access the contents of the monitored file or " "directory. The reading application is responsible for closing this file " "descriptor." msgstr "" "C’est un descripteur de fichier ouvert pour l’objet actuellement accédé ou " "B si un dépassement de file est survenu. Avec un groupe fanotify " "qui identifie les objets de système d’exploitation par des gestionnaires de " "fichiers, les applications doivent escompter que cette valeur soit " "B pour chaque évènement qu’elles reçoivent. Le descripteur de " "fichier peut être utilisé pour accéder au contenu du fichier ou répertoire " "surveillé. L’application qui lit est responsable de la fermeture de ce " "descripteur de fichier." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When calling B(2), the caller may specify (via the " "I argument) various file status flags that are to be set on " "the open file description that corresponds to this file descriptor. In " "addition, the (kernel-internal) B file status flag is set " "on the open file description. This flag suppresses fanotify event " "generation. Hence, when the receiver of the fanotify event accesses the " "notified file or directory using this file descriptor, no additional events " "will be created." msgstr "" "Lors d’un appel de B(2), l’appelant pourrait indiquer (à " "l’aide de l’argument I) plusieurs attributs d’état de fichier " "à définir dans la description de fichier ouverte qui correspond à ce " "descripteur de fichier. De plus, l’attribut d’état de fichier " "B (interne au noyau) est défini dans la description de " "fichier ouverte. L’attribut supprime la création d’événement fanotify. " "Ainsi, quand le destinataire de l’événement fanotify accède au fichier ou " "répertoire notifié en utilisant ce descripteur de fichier, aucun événement " "supplémentaire n’est créé." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If flag B was set in B(2), this is the TID of " "the thread that caused the event. Otherwise, this the PID of the process " "that caused the event." msgstr "" "Si l’attribut B était réglé dans B(2), c’est " "l’identifiant (TID) du thread qui a provoqué cet évènement. Sinon, c’est le " "PID du processus qui a provoqué cet évènement." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A program listening to fanotify events can compare this PID to the PID " "returned by B(2), to determine whether the event is caused by the " "listener itself, or is due to a file access by another process." msgstr "" "Un programme écoutant les événements fanotify peut comparer ce PID au PID " "renvoyé par B(2) pour déterminer si l’événement est provoqué par " "l’écoutant lui-même ou par un autre processus accédant au fichier." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The bit mask in I indicates which events have occurred for a single " "filesystem object. Multiple bits may be set in this mask, if more than one " "event occurred for the monitored filesystem object. In particular, " "consecutive events for the same filesystem object and originating from the " "same process may be merged into a single event, with the exception that two " "permission events are never merged into one queue entry." msgstr "" "Le masque binaire I indique les événements survenus pour un seul objet " "de système de fichiers. Plusieurs bits pourraient être définis dans ce " "masque si plus d’un événement est survenu pour l’objet de système de " "fichiers surveillé. En particulier, les événements consécutifs pour le même " "objet de système de fichiers et originaires du même processus pourraient " "être fusionnés dans un seul événement, mais deux événements de permission ne " "sont jamais fusionnés dans une entrée de file." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The bits that may appear in I are as follows:" msgstr "Les bits pouvant apparaître dans I sont les suivants." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A file or a directory (but see BUGS) was accessed (read)." msgstr "" "Un fichier ou un répertoire (mais consultez B) a été accédé (en " "lecture)." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A file or a directory was opened." msgstr "Un fichier ou un répertoire a été ouvert." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A file was opened with the intent to be executed. See NOTES in " "B(2) for additional details." msgstr "" "Un fichier a été ouvert dans le but d’être exécuté. Consultez NOTES dans " "B(2) pour plus de détails." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A file or directory metadata was changed." msgstr "Une métadonnée de fichier ou d’un répertoire a été modifiée." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A child file or directory was created in a watched parent." msgstr "" "Un fichier enfant ou un répertoire a été créé dans le répertoire surveillé." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A child file or directory was deleted in a watched parent." msgstr "" "Un fichier enfant ou un répertoire a été supprimé dans le répertoire " "surveillé." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A watched file or directory was deleted." msgstr "Un fichier ou un répertoire a été supprimé." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "B" msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "Filesystem errors left uncorrected" msgid "A filesystem error was detected." msgstr "Il reste des erreurs non corrigées sur le système de fichiers." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "B" msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "A file or directory has been moved from a watched parent directory." msgid "" "A file or directory has been moved to or from a watched parent directory." msgstr "Un fichier ou un répertoire a été déplacé du répertoire surveillé." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A file or directory has been moved from a watched parent directory." msgstr "Un fichier ou un répertoire a été déplacé du répertoire surveillé." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A file or directory has been moved to a watched parent directory." msgstr "" "Un fichier ou un répertoire a été déplacé du répertoire parent surveillé." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A watched file or directory was moved." msgstr "Un fichier ou un répertoire surveillé a été déplacé." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A file was modified." msgstr "Un fichier a été modifié." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A file that was opened for writing (B or B) was closed." msgstr "" "Un fichier qui était ouvert en écriture (B ou B) a été " "fermé." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A file or directory that was opened read-only (B) was closed." msgstr "" "Un fichier ou un répertoire, qui était ouvert en lecture seule " "(B), a été fermé." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "The event queue exceeded the limit of 16384 entries. This limit can be " #| "overridden by specifying the B flag when calling " #| "B(2)." msgid "" "The event queue exceeded the limit on number of events. This limit can be " "overridden by specifying the B flag when calling " "B(2)." msgstr "" "La file d’événements a dépassé la limite de 16384 entrées. Cette limite peut " "être écrasée en indiquant l’attribut B lors de l’appel " "de B(2)." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "An application wants to read a file or directory, for example using " "B(2) or B(2). The reader must write a response (as " "described below) that determines whether the permission to access the " "filesystem object shall be granted." msgstr "" "Une application veut lire un fichier ou répertoire, par exemple en utilisant " "B(2) ou B(2). Le lecteur doit écrire une réponse (telle que " "décrite ci-dessous) qui détermine si le droit d’accès à l’objet de système " "de fichiers sera attribué." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "An application wants to open a file or directory. The reader must write a " "response that determines whether the permission to open the filesystem " "object shall be granted." msgstr "" "Une application veut ouvrir un fichier ou un répertoire. Le lecteur doit " "écrire une réponse qui détermine si le droit d’ouvrir l’objet de système de " "fichiers sera attribué." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "An application wants to open a file for execution. The reader must write a " "response that determines whether the permission to open the filesystem " "object for execution shall be granted. See NOTES in B(2) " "for additional details." msgstr "" "Une application veut ouvrir un fichier pour une exécution. Le lecteur doit " "écrire une réponse qui détermine si le droit d’ouvrir l’objet de système de " "fichiers sera attribué. Consultez NOTES dans B(2) pour plus " "de détails." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "To check for any close event, the following bit mask may be used:" msgstr "" "Pour vérifier tous les événements fermés, le masque binaire suivant pourrait " "être utilisé :" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A file was closed. This is a synonym for:" msgstr "Un fichier a été fermé. C’est un synonyme de :" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid " FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE\n" msgid "FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE\n" msgstr " FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "To check for any move event, the following bit mask may be used:" msgstr "" "Pour vérifier tous les événements de déplacement, le masque binaire suivant " "pourrait être utilisé :" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "A file or directory was moved. This is a synonym for:" msgstr "Un fichier ou un répertoire a été déplacé. C’est un synonyme de :" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid " FAN_MOVED_FROM | FAN_MOVED_TO\n" msgid "FAN_MOVED_FROM | FAN_MOVED_TO\n" msgstr " FAN_MOVED_FROM | FAN_MOVED_TO\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following bits may appear in I only in conjunction with other " "event type bits:" msgstr "" "Les bits suivants peuvent apparaître dans I seulement conjointement " "avec d’autres bits de type d’évènement :" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The events described in the I have occurred on a directory object. " "Reporting events on directories requires setting this flag in the mark " "mask. See B(2) for additional details. The B " "flag is reported in an event mask only if the fanotify group identifies " "filesystem objects by file handles." msgstr "" "Les évènements décrits dans le I se sont déroulés dans un objet de " "répertoire. Le rapport d’évènements dans des répertoires requiert le réglage " "de cet attribut dans le masque I. Consultez B(2) pour " "plus de détails. L’attribut B est rapporté dans un masque " "d’évènement seulement si le groupe fanotify identifie les objets de système " "d’exploitation avec des gestionnaires de fichiers." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Information records that are supplied alongside the generic " "I structure will always contain a nested structure " "of type I. The fields of the " "I are as follows:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "I" msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A unique integer value representing the type of information record object " "received for an event. The value of this field can be set to one of the " "following: B, B, " "B, or B. The " "value set for this field is dependent on the flags that have been supplied " "to B(2). Refer to the field details of each information " "record object type below to understand the different cases in which the " "I values can be set." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This field is currently not used by any information record object type and " "therefore is set to zero." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The value of I is set to the size of the information record object, " "including the I. The total size of all " "additional information records is not expected to be larger than " "(I - I)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The fields of the I structure are as follows:" msgstr "" "Les champs de la structure I sont les suivants." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "This is a structure of type I. It is a " #| "generic header that contains information used to describe an additional " #| "information record attached to the event. For example, when an fanotify " #| "file descriptor is created using B, a single information " #| "record is expected to be attached to the event with I field " #| "value of B. When an fanotify file descriptor is " #| "created using the combination of B and " #| "B, there may be two information records attached to " #| "the event: one with I field value of " #| "B, identifying a parent directory object, and " #| "one with I field value of B, " #| "identifying a non-directory object. The I " #| "contains a I field. The value of I is the size of the " #| "additional information record including the I " #| "itself. The total size of all additional information records is not " #| "expected to be bigger than ( I - I )." msgid "" "This is a structure of type I. For example, " "when an fanotify file descriptor is created using B, a " "single information record is expected to be attached to the event with " "I field value of B. When an fanotify " "file descriptor is created using the combination of B and " "B, there may be two information records attached to the " "event: one with I field value of B, " "identifying a parent directory object, and one with I field value " "of B, identifying a child object. Note that for " "the directory entry modification events B, B, " "B, and B, an information record identifying the " "created/deleted/moved child object is reported only if an fanotify group was " "initialized with the flag B." msgstr "" "C’est une structure de type I. C’est un en-tête " "générique qui contient des informations utilisées pour décrire un " "enregistrement d’informations supplémentaires attaché à l’évènement. Par " "exemple, quand un descripteur de fichier fanotify est créé en utilisant " "B, un enregistrement unique est supposé être attaché à " "l’évènement avec la valeur de champ I de " "B. Quand un descripteur de fichier fanotify est " "créé en utilisant la combinaison de B et " "B, il peut y avoir deux enregistrements d’informations " "attachés à l’évènement : un avec une valeur de champ I de " "B, identifiant un objet de répertoire parent, et " "un avec une valeur de champ I de B, " "identifiant un objet non répertoire. Le I " "contient un champ I. La valeur de I est la taille de " "l’enregistrement d’informations supplémentaires incluant le " "I lui-même. La taille totale de tous les " "enregistrements d’informations supplémentaires n’est pas supposée être " "supérieure à (\\ I\\ -\\ I\\ )." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is a unique identifier of the filesystem containing the object " "associated with the event. It is a structure of type I<__kernel_fsid_t> and " "contains the same value as I when calling B(2)." msgstr "" "C’est un identifiant unique du système de fichiers contenant l’objet associé " "avec l’évènement. C’est une structure de type I<__kernel_fsid_t> et elle " "contient la même valeur que I lors de l’appel B(2)." #. type: TP #: archlinux fedora-40 fedora-rawhide mageia-cauldron #, fuzzy, no-wrap #| msgid "I" msgid "I" msgstr "I" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron #, fuzzy #| msgid "" #| "This is a variable length structure of type struct file_handle. It is an " #| "opaque handle that corresponds to a specified object on a filesystem as " #| "returned by B(2). It can be used to uniquely identify " #| "a file on a filesystem and can be passed as an argument to " #| "B(2). Note that for the directory entry modification " #| "events B, B, and B, the I " #| "identifies the modified directory and not the created/deleted/moved child " #| "object. If the value of I field is " #| "B, the file handle is followed by a null " #| "terminated string that identifies the created/deleted/moved directory " #| "entry name. For other events such as B, B, " #| "B, and B, if the value of I " #| "field is B, the I identifies the " #| "object correlated to the event. If the value of I field is " #| "B, the I identifies the directory " #| "object correlated to the event or the parent directory of a non-directory " #| "object correlated to the event. If the value of I field is " #| "B, the I identifies the same " #| "directory object that would be reported with B " #| "and the file handle is followed by a null terminated string that " #| "identifies the name of a directory entry in that directory, or '.' to " #| "identify the directory object itself." msgid "" "This field contains a variable-length structure of type I. It is an opaque handle that corresponds to a specified object " "on a filesystem as returned by B(2). It can be used to " "uniquely identify a file on a filesystem and can be passed as an argument to " "B(2). If the value of I field is " "B, the file handle is followed by a null " "terminated string that identifies the created/deleted/moved directory entry " "name. For other events such as B, B, " "B, and B, if the value of I field " "is B, the I identifies the object " "correlated to the event. If the value of I field is " "B, the I identifies the directory object " "correlated to the event or the parent directory of a non-directory object " "correlated to the event. If the value of I field is " "B, the I identifies the same " "directory object that would be reported with B and " "the file handle is followed by a null terminated string that identifies the " "name of a directory entry in that directory, or '.' to identify the " "directory object itself." msgstr "" "C’est une structure de taille variable de type I. C’est un gestionnaire opaque qui correspond à un " "objet précis de système de fichiers comme renvoyé par " "B(2). Il peut être utilisé uniquement pour identifier un " "fichier d’un système de fichiers et peut être passé comme argument à " "B(2). Remarquez que pour les évènements de modification " "d’entrée de répertoire B, B et B, " "I identifie le répertoire modifié et non l’objet " "enfant créé/supprimé/déplacé. Si la valeur du champ I est " "B, le gestionnaire de fichiers est suivi par " "un octet NULL final qui identifie le nom d’entrée de répertoire créé/" "supprimé/déplacé. Pour les autres évènements tels que B, " "B, B et B, si la valeur du champ " "I est B, le I " "identifie l’objet corrélé à l’évènement. Si la valeur du champ I " "est B, le I identifie " "l’objet de répertoire corrélé à l’évènement ou le répertoire parent d’un " "objet non répertoire corrélé à l’évènement. Si la valeur du champ " "I est B, le " "I identifie le même objet de répertoire qui aurait été " "rapporté avec B et le gestionnaire de fichiers est " "suivi par un octet NULL final qui identifie le nom de l’entrée de répertoire " "dans ce répertoire ou « . » pour identifier l’objet du répertoire." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "The fields of the I structure are as follows:" msgid "" "The fields of the I structure are as follows:" msgstr "" "Les champs de la structure I sont les suivants." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is a structure of type I. When an fanotify " "group is initialized using B, the I field value " "of the I is set to B." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "I" msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is a process file descriptor that refers to the process responsible for " "generating the event. The returned process file descriptor is no different " "from one which could be obtained manually if B(2) were to be " "called on I. In the instance that an error is " "encountered during pidfd creation, one of two possible error types " "represented by a negative integer value may be returned in this I " "field. In cases where the process responsible for generating the event has " "terminated prior to the event listener being able to read events from the " "notification queue, B is returned. The pidfd creation for an " "event is only performed at the time the events are read from the " "notification queue. All other possible pidfd creation failures are " "represented by B. Once the event listener has dealt with an " "event and the pidfd is no longer required, the pidfd should be closed via " "B(2)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "The fields of the I structure are as follows:" msgid "" "The fields of the I structure are as follows:" msgstr "" "Les champs de la structure I sont les suivants." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is a structure of type I. The I " "field is set to B." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "B" msgid "I" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Identifies the type of error that occurred." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "I" msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is a counter of the number of errors suppressed since the last error " "was read." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following macros are provided to iterate over a buffer containing " "fanotify event metadata returned by a B(2) from an fanotify file " "descriptor:" msgstr "" "Les macros suivantes sont fournies pour itérer sur un tampon contenant les " "métadonnées d’événement fanotify renvoyées par B(2) à partir d’un " "descripteur de fichier fanotify." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This macro checks the remaining length I of the buffer I against " "the length of the metadata structure and the I field of the first " "metadata structure in the buffer." msgstr "" "Cette macro compare la taille restante I du tampon I à la taille " "de la structure de métadonnées et au champ I de la première " "structure de métadonnées du tampon." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This macro uses the length indicated in the I field of the " "metadata structure pointed to by I to calculate the address of the " "next metadata structure that follows I. I is the number of bytes " "of metadata that currently remain in the buffer. The macro returns a " "pointer to the next metadata structure that follows I, and reduces " "I by the number of bytes in the metadata structure that has been " "skipped over (i.e., it subtracts Ievent_len> from I)." msgstr "" "Cette macro utilise la taille indiquée dans le champ I de la " "structure de métadonnées pointée par I pour calculer l’adresse de la " "prochaine structure de métadonnées qui suit I. I est le nombre " "d’octets de métadonnées qui restent actuellement dans le tampon. La macro " "renvoie un pointeur vers la prochaine structure de métadonnées qui suit " "I et réduit I du nombre d’octets dans la structure de métadonnées " "qui a été sautée (c’est-à-dire qu’elle soustrait Ievent_len> de " "I)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "In addition, there is:" msgstr "De plus, il existe :" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This macro returns the size (in bytes) of the structure " "I. This is the minimum size (and currently the " "only size) of any event metadata." msgstr "" "Cette macro renvoie la taille (en octet) de la structure " "I. C’est la taille minimale (et actuellement la " "seule taille) de métadonnées d’événements." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Monitoring an fanotify file descriptor for events" msgstr "Surveiller un descripteur de fichier fanotify pour les événements" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When an fanotify event occurs, the fanotify file descriptor indicates as " "readable when passed to B(7), B(2), or B(2)." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Dealing with permission events" msgstr "Traitement des événements de permission" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For permission events, the application must B(2) a structure of the " "following form to the fanotify file descriptor:" msgstr "" "Pour les événements de permission, l’application doit écrire (avec " "B(2)) une structure de la forme suivante sur le descripteur de " "fichier fanotify :" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "struct fanotify_response {\n" " __s32 fd;\n" " __u32 response;\n" "};\n" msgstr "" "struct fanotify_response {\n" " __s32 fd;\n" " __u32 response;\n" "};\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The fields of this structure are as follows:" msgstr "Les membres de cette structure sont les suivants :" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is the file descriptor from the structure I." msgstr "" "C’est le descripteur de fichier de la structure I." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This field indicates whether or not the permission is to be granted. Its " "value must be either B to allow the file operation or B " "to deny the file operation." msgstr "" "Ce champ indique si les droits doivent être attribués ou non. Cette valeur " "doit être soit B pour permettre l’opération de fichier, soit " "B pour refuser l’opération de fichier." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If access is denied, the requesting application call will receive an " "B error. Additionally, if the notification group has been created " "with the B flag, then the B flag can be set in " "the I field. In that case, the audit subsystem will log " "information about the access decision to the audit logs." msgstr "" "Si l’accès est refusé, l’appel de l’application requérante recevra une " "erreur B. De plus, si le groupe de notifications a été créé avec " "l’attribut B, alors l’attribut B peut être " "défini dans le champ I. Dans ce cas, le sous-système d’audit " "journalisera l’information à propos de la décision d’accès aux journaux " "d’audit." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "fanotify - monitoring filesystem events" msgid "Monitoring filesystems for errors" msgstr "fanotify – Surveiller les événements des systèmes de fichiers" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A single B event is stored per filesystem at once. Extra " "error messages are suppressed and accounted for in the I field " "of the existing B event record, but details about the errors " "are lost." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Errors reported by B are generic I values, but not all " "kinds of error types are reported by all filesystems." msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron msgid "" "Errors not directly related to a file (i.e. super block corruption) are " "reported with an invalid I. For these errors, the I will " "have the field I set to B, and the handle " "buffer size set to B<0>." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Closing the fanotify file descriptor" msgstr "Fermeture du descripteur de fichier fanotify" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When all file descriptors referring to the fanotify notification group are " "closed, the fanotify group is released and its resources are freed for reuse " "by the kernel. Upon B(2), outstanding permission events will be set " "to allowed." msgstr "" "Quand tous les descripteurs de fichier se référant au groupe de " "notifications fanotify sont fermés, le groupe fanotify est libéré et ses " "ressources sont libérées pour être réutilisées par le noyau. Lors de l’appel " "de B(2), les événements de permission restants seront définis à " "permis." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "/proc interfaces" msgstr "/proc interfaces" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "The file I contains information about fanotify " #| "marks for file descriptor I of process I. See B(5) for " #| "details." msgid "" "The file IpidIfd contains information about fanotify marks " "for file descriptor I of process I. See B(5) for details." msgstr "" "Le fichier I contient des renseignements sur les " "marques fanotify pour le descripteur de fichier I du processus I. " "Consultez B(5) pour plus de précisions." #. commit 5b8fea65d197f408bb00b251c70d842826d6b70b #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Since Linux 5.13, the following interfaces can be used to control the amount " "of kernel resources consumed by fanotify:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. commit 5b8fea65d197f408bb00b251c70d842826d6b70b #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The value in this file is used when an application calls " "B(2) to set an upper limit on the number of events that can " "be queued to the corresponding fanotify group. Events in excess of this " "limit are dropped, but an B event is always generated. " "Prior to Linux kernel 5.13, the hardcoded limit was 16384 events." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. commit 5b8fea65d197f408bb00b251c70d842826d6b70b #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This specifies an upper limit on the number of fanotify groups that can be " "created per real user ID. Prior to Linux kernel 5.13, the hardcoded limit " "was 128 groups per user." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. commit 5b8fea65d197f408bb00b251c70d842826d6b70b #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This specifies an upper limit on the number of fanotify marks that can be " "created per real user ID. Prior to Linux kernel 5.13, the hardcoded limit " "was 8192 marks per group (not per user)." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ERRORS" msgstr "ERREURS" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In addition to the usual errors for B(2), the following errors can " "occur when reading from the fanotify file descriptor:" msgstr "" "En plus des erreurs habituelles de B(2), les erreurs suivantes peuvent " "survenir lors de la lecture d’un descripteur de fichier fanotify." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The buffer is too small to hold the event." msgstr "Le tampon est trop petit pour contenir l’événement." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The per-process limit on the number of open files has been reached. See the " "description of B in B(2)." msgstr "" "La limite par processus du nombre de fichiers ouverts a été atteinte. " "Consultez la description de B dans B(2)." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The system-wide limit on the total number of open files has been reached. " "See I in B(5)." msgstr "" "La limite du nombre de fichiers ouverts sur le système a été atteinte. " "Consultez I dans B(5)." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This error is returned by B(2) if B or B was " "specified in the I argument when calling B(2) " "and an event occurred for a monitored file that is currently being executed." msgstr "" "Cette erreur est renvoyée par B(2) si B ou B ont été " "indiqués dans l’argument I lors de l’appel " "B(2) et qu’un événement est survenu pour un fichier surveillé " "actuellement en cours d’exécution." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In addition to the usual errors for B(2), the following errors can " "occur when writing to the fanotify file descriptor:" msgstr "" "En plus des erreurs habituelles de B(2), les erreurs suivantes " "peuvent survenir lors de l’écriture sur un descripteur de fichier fanotify." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Fanotify access permissions are not enabled in the kernel configuration or " "the value of I in the response structure is not valid." msgstr "" "Les droits d’accès fanotify ne sont pas activés dans la configuration du " "noyau ou la valeur de I dans la structure de réponse n’est pas " "valable." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The file descriptor I in the response structure is not valid. This may " "occur when a response for the permission event has already been written." msgstr "" "Le descripteur de fichier I dans la structure de réponse n’est pas " "valable. Cela pourrait survenir quand une réponse pour l’événement de " "permission a déjà été écrite." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STANDARDS" msgstr "STANDARDS" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "Linux." msgstr "Linux." #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "HISTORY" msgstr "HISTORIQUE" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "The fanotify API was introduced in version 2.6.36 of the Linux kernel and " #| "enabled in version 2.6.37. Fdinfo support was added in version 3.8." msgid "" "The fanotify API was introduced in Linux 2.6.36 and enabled in Linux " "2.6.37. fdinfo support was added in Linux 3.8." msgstr "" "L’interface de programmation fanotify a été introduite dans la " "version 2.6.36 du noyau Linux et activée dans la version 2.6.37. La prise en " "charge de fdinfo a été ajoutée dans la version 3.8." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NOTES" msgstr "NOTES" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The fanotify API is available only if the kernel was built with the " "B configuration option enabled. In addition, fanotify " "permission handling is available only if the " "B configuration option is enabled." msgstr "" "L’interface de programmation fanotify n’est disponible que si le noyau a été " "construit avec l’option de configuration B activée. De " "plus, le traitement de permission fanotify n’est disponible que si l’option " "de configuration B est activée." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Limitations and caveats" msgstr "Limites et réserves" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Fanotify reports only events that a user-space program triggers through the " "filesystem API. As a result, it does not catch remote events that occur on " "network filesystems." msgstr "" "Fanotify ne signale que les événements déclenchés par un programme en espace " "utilisateur à l’aide d’une interface de programmation de système de " "fichiers. Par conséquent, elle n’intercepte pas les événements qui " "surviennent sur les systèmes de fichiers en réseau." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The fanotify API does not report file accesses and modifications that may " "occur because of B(2), B(2), and B(2)." msgstr "" "L'interface fanotify ne signale pas les accès ni les modifications de " "fichier qui pourraient survenir à cause de B(2), B(2) ou " "B(2)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Events for directories are created only if the directory itself is opened, " "read, and closed. Adding, removing, or changing children of a marked " "directory does not create events for the monitored directory itself." msgstr "" "Les événements pour répertoire ne sont créés que si le répertoire lui-même " "est ouvert, lu et fermé. Ajouter, supprimer ou modifier les enfants d’un " "répertoire marqué ne crée pas d’événement pour le répertoire surveillé lui-" "même." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Fanotify monitoring of directories is not recursive: to monitor " "subdirectories under a directory, additional marks must be created. The " "B event can be used for detecting when a subdirectory has been " "created under a marked directory. An additional mark must then be set on " "the newly created subdirectory. This approach is racy, because it can lose " "events that occurred inside the newly created subdirectory, before a mark is " "added on that subdirectory. Monitoring mounts offers the capability to " "monitor a whole directory tree in a race-free manner. Monitoring " "filesystems offers the capability to monitor changes made from any mount of " "a filesystem instance in a race-free manner." msgstr "" "La surveillance fanotify des répertoires n'est pas récursive : pour " "surveiller les sous-répertoires, des marques supplémentaires doivent être " "créées. L’évènement B peut être utilisé pour détecter quand un " "sous-répertoire a été créé dans un répertoire marqué. Une marque " "supplémentaire doit être définie dans le sous-répertoire nouvellement créé. " "Cette approche crée une situation de compétition, parce qu’elle peut perdre " "les évènements qui se produisent dans le nouveau sous-répertoire avant " "qu’une marque soit ajoutée dans ce sous-répertoire. La surveillance des " "montages offre la capacité de surveiller un arbre entier de répertoires sans " "ce problème de chronologie. La surveillance de système de fichiers offre la " "capacité de surveiller tout montage d’une instance de système de fichiers " "sans situation de compétition." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The event queue can overflow. In this case, events are lost." msgstr "" "La file d'événements peut déborder. Dans ce cas, les événements sont perdus." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BUGS" msgstr "BOGUES" #. commit 820c12d5d6c0890bc93dd63893924a13041fdc35 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Before Linux 3.19, B(2) did not generate fanotify events. Since " "Linux 3.19, calls to B(2) generate B events." msgstr "" "Avant Linux 3.19, B(2) ne créait pas d'événement fanotify. Depuis " "Linux 3.19, les appels à B(2) créent des événements B." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "As of Linux 3.17, the following bugs exist:" msgstr "Dans Linux 3.17, les bogues suivants existent :" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "\\[bu]" msgstr "-" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "On Linux, a filesystem object may be accessible through multiple paths, for " "example, a part of a filesystem may be remounted using the I<--bind> option " "of B(8). A listener that marked a mount will be notified only of " "events that were triggered for a filesystem object using the same mount. " "Any other event will pass unnoticed." msgstr "" "Dans Linux, un objet du système de fichiers pourrait être accessible par de " "multiples chemins. Par exemple, une partie d'un système de fichiers pourrait " "être remontée avec l'option I<--bind> de B(8). Un écoutant ayant " "marqué un montage ne sera notifié que des événements déclenchés pour un " "objet du système de fichiers utilisant le même montage. Tout autre événement " "passera inaperçu." #. FIXME . A patch was proposed. #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When an event is generated, no check is made to see whether the user ID of " "the receiving process has authorization to read or write the file before " "passing a file descriptor for that file. This poses a security risk, when " "the B capability is set for programs executed by unprivileged " "users." msgstr "" "Quand un événement est créé, aucune vérification n’est effectuée pour voir " "si l’identifiant utilisateur du processus recevant a le droit de lire ou " "écrire le fichier avant de passer un descripteur de fichier pour ce fichier. " "Cela pose un risque de sécurité quand la capacité B est " "définie pour un programme exécuté par les utilisateurs ordinaires." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If a call to B(2) processes multiple events from the fanotify queue " "and an error occurs, the return value will be the total length of the events " "successfully copied to the user-space buffer before the error occurred. The " "return value will not be -1, and I will not be set. Thus, the " "reading application has no way to detect the error." msgstr "" "Si un appel de B(2) traite plusieurs événements de la file fanotify et " "qu’une erreur survient, la valeur de retour sera la taille totale des " "événements copiés correctement dans le tampon d’espace utilisateur avant que " "l’erreur ne survienne. La valeur de retour ne sera pas B<-1> et I ne " "sera pas définie. Ainsi, l’application lisant n’a aucun moyen de détecter " "l’erreur." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "EXEMPLES" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The two example programs below demonstrate the usage of the fanotify API." msgstr "" "Les deux programmes ci-dessous montrent l’utilisation de l’API de fanotify." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Example program: fanotify_example.c" msgstr "Exemple de programme : fanotify_example.c" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The first program is an example of fanotify being used with its event object " "information passed in the form of a file descriptor. The program marks the " "mount passed as a command-line argument and waits for events of type " "B and B. When a permission event occurs, a " "B response is given." msgstr "" "Le programme suivant montre l’utilisation de l’interface de programmation " "fanotify avec les informations d’évènements d’objet passées sous la forme " "d’un descripteur de fichier. Il marque le point de montage passé en argument " "de ligne de commande et attend les événements de type B et " "B. Quand un événement de permission survient, une réponse " "B est donnée." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following shell session shows an example of running this program. This " "session involved editing the file I. Before the file " "was opened, a B event occurred. After the file was closed, a " "B event occurred. Execution of the program ends when the " "user presses the ENTER key." msgstr "" "La sortie suivante de session d’interpréteur de commande montre un exemple " "de l’exécution de ce programme. Cette session concerne l’édition du fichier " "I. Avant d’ouvrir le fichier, un événement " "B est survenu. Après la fermeture du fichier, un événement " "B est survenu. L’exécution du programme se termine quand " "l’utilisateur appuie sur la touche Entrée." #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "" #| "# B<./fanotify_example /home>\n" #| "Press enter key to terminate.\n" #| "Listening for events.\n" #| "FAN_OPEN_PERM: File /home/user/temp/notes\n" #| "FAN_CLOSE_WRITE: File /home/user/temp/notes\n" msgid "" "# B<./fanotify_example /home>\n" "Press enter key to terminate.\n" "Listening for events.\n" "FAN_OPEN_PERM: File /home/user/temp/notes\n" "FAN_CLOSE_WRITE: File /home/user/temp/notes\n" "\\&\n" "Listening for events stopped.\n" msgstr "" "# B<./fanotify_exemple /home>\n" "Appuyer sur la touche Entrée pour quitter.\n" "En écoute d’événements.\n" "FAN_OPEN_PERM : Fichier /home/utilisateur/temp/notes\n" "FAN_CLOSE_WRITE : Fichier /home/utilisateur/temp/notes\n" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Program source: fanotify_example.c" msgstr "Source du programme : fanotify_example.c" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "#define _GNU_SOURCE /* Needed to get O_LARGEFILE definition */\n" "#include Eerrno.hE\n" "#include Efcntl.hE\n" "#include Elimits.hE\n" "#include Epoll.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/fanotify.hE\n" "#include Eunistd.hE\n" "\\&\n" "/* Read all available fanotify events from the file descriptor \\[aq]fd\\[aq]. */\n" "\\&\n" "static void\n" "handle_events(int fd)\n" "{\n" " const struct fanotify_event_metadata *metadata;\n" " struct fanotify_event_metadata buf[200];\n" " ssize_t len;\n" " char path[PATH_MAX];\n" " ssize_t path_len;\n" " char procfd_path[PATH_MAX];\n" " struct fanotify_response response;\n" "\\&\n" " /* Loop while events can be read from fanotify file descriptor. */\n" "\\&\n" " for (;;) {\n" "\\&\n" " /* Read some events. */\n" "\\&\n" " len = read(fd, buf, sizeof(buf));\n" " if (len == -1 && errno != EAGAIN) {\n" " perror(\"read\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* Check if end of available data reached. */\n" "\\&\n" " if (len E= 0)\n" " break;\n" "\\&\n" " /* Point to the first event in the buffer. */\n" "\\&\n" " metadata = buf;\n" "\\&\n" " /* Loop over all events in the buffer. */\n" "\\&\n" " while (FAN_EVENT_OK(metadata, len)) {\n" "\\&\n" " /* Check that run-time and compile-time structures match. */\n" "\\&\n" " if (metadata-Evers != FANOTIFY_METADATA_VERSION) {\n" " fprintf(stderr,\n" " \"Mismatch of fanotify metadata version.\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* metadata-Efd contains either FAN_NOFD, indicating a\n" " queue overflow, or a file descriptor (a nonnegative\n" " integer). Here, we simply ignore queue overflow. */\n" "\\&\n" " if (metadata-Efd E= 0) {\n" "\\&\n" " /* Handle open permission event. */\n" "\\&\n" " if (metadata-Emask & FAN_OPEN_PERM) {\n" " printf(\"FAN_OPEN_PERM: \");\n" "\\&\n" " /* Allow file to be opened. */\n" "\\&\n" " response.fd = metadata-Efd;\n" " response.response = FAN_ALLOW;\n" " write(fd, &response, sizeof(response));\n" " }\n" "\\&\n" " /* Handle closing of writable file event. */\n" "\\&\n" " if (metadata-Emask & FAN_CLOSE_WRITE)\n" " printf(\"FAN_CLOSE_WRITE: \");\n" "\\&\n" " /* Retrieve and print pathname of the accessed file. */\n" "\\&\n" " snprintf(procfd_path, sizeof(procfd_path),\n" " \"/proc/self/fd/%d\", metadata-Efd);\n" " path_len = readlink(procfd_path, path,\n" " sizeof(path) - 1);\n" " if (path_len == -1) {\n" " perror(\"readlink\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " path[path_len] = \\[aq]\\e0\\[aq];\n" " printf(\"File %s\\en\", path);\n" "\\&\n" " /* Close the file descriptor of the event. */\n" "\\&\n" " close(metadata-Efd);\n" " }\n" "\\&\n" " /* Advance to next event. */\n" "\\&\n" " metadata = FAN_EVENT_NEXT(metadata, len);\n" " }\n" " }\n" "}\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " char buf;\n" " int fd, poll_num;\n" " nfds_t nfds;\n" " struct pollfd fds[2];\n" "\\&\n" " /* Check mount point is supplied. */\n" "\\&\n" " if (argc != 2) {\n" " fprintf(stderr, \"Usage: %s MOUNT\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " printf(\"Press enter key to terminate.\\en\");\n" "\\&\n" " /* Create the file descriptor for accessing the fanotify API. */\n" "\\&\n" " fd = fanotify_init(FAN_CLOEXEC | FAN_CLASS_CONTENT | FAN_NONBLOCK,\n" " O_RDONLY | O_LARGEFILE);\n" " if (fd == -1) {\n" " perror(\"fanotify_init\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* Mark the mount for:\n" " - permission events before opening files\n" " - notification events after closing a write-enabled\n" " file descriptor. */\n" "\\&\n" " if (fanotify_mark(fd, FAN_MARK_ADD | FAN_MARK_MOUNT,\n" " FAN_OPEN_PERM | FAN_CLOSE_WRITE, AT_FDCWD,\n" " argv[1]) == -1) {\n" " perror(\"fanotify_mark\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* Prepare for polling. */\n" "\\&\n" " nfds = 2;\n" "\\&\n" " fds[0].fd = STDIN_FILENO; /* Console input */\n" " fds[0].events = POLLIN;\n" "\\&\n" " fds[1].fd = fd; /* Fanotify input */\n" " fds[1].events = POLLIN;\n" "\\&\n" " /* This is the loop to wait for incoming events. */\n" "\\&\n" " printf(\"Listening for events.\\en\");\n" "\\&\n" " while (1) {\n" " poll_num = poll(fds, nfds, -1);\n" " if (poll_num == -1) {\n" " if (errno == EINTR) /* Interrupted by a signal */\n" " continue; /* Restart poll() */\n" "\\&\n" " perror(\"poll\"); /* Unexpected error */\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " if (poll_num E 0) {\n" " if (fds[0].revents & POLLIN) {\n" "\\&\n" " /* Console input is available: empty stdin and quit. */\n" "\\&\n" " while (read(STDIN_FILENO, &buf, 1) E 0 && buf != \\[aq]\\en\\[aq])\n" " continue;\n" " break;\n" " }\n" "\\&\n" " if (fds[1].revents & POLLIN) {\n" "\\&\n" " /* Fanotify events are available. */\n" "\\&\n" " handle_events(fd);\n" " }\n" " }\n" " }\n" "\\&\n" " printf(\"Listening for events stopped.\\en\");\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Example program: fanotify_fid.c" msgstr "Exemple de programme : fanotify_fid.c" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "The second program is an example of fanotify being used with a group that " #| "identifies objects by file handles. The program marks the filesystem " #| "object that is passed as a command-line argument and waits until an event " #| "of type B has occurred. The event mask indicates which type " #| "of filesystem object\\(emeither a file or a directory\\(emwas created. " #| "Once all events have been read from the buffer and processed accordingly, " #| "the program simply terminates." msgid "" "The second program is an example of fanotify being used with a group that " "identifies objects by file handles. The program marks the filesystem object " "that is passed as a command-line argument and waits until an event of type " "B has occurred. The event mask indicates which type of " "filesystem object\\[em]either a file or a directory\\[em]was created. Once " "all events have been read from the buffer and processed accordingly, the " "program simply terminates." msgstr "" "Le second programme est un exemple d’utilisation de fanotify avec un groupe " "qui identifie des objets avec des gestionnaires de fichier. Le programme " "marque l’objet de système de fichiers qui est passé comme argument de ligne " "de commande et attend jusqu’à ce qu’un évènement de type B se " "produise. Le masque d’évènement indique quel type d’objet de système de " "fichiers, soit un fichier ou un répertoire, est créé. Une fois que tous les " "évènements du tampon ont été lus et traités de la manière appropriée, le " "programme se termine." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following shell sessions show two different invocations of this program, " "with different actions performed on a watched object." msgstr "" "Les sessions d’interpréteur de commande suivantes montrent deux invocations " "différentes avec des actions différentes réalisées sur l’objet désiré." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The first session shows a mark being placed on I. This is " "followed by the creation of a regular file, I. " "This results in a B event being generated and reported against " "the file's parent watched directory object and with the created file name. " "Program execution ends once all events captured within the buffer have been " "processed." msgstr "" "La première session montre une marque placée sur I. Cela " "est suivi par la création d’un fichier normal, I. Cela aboutit à un évènement B généré et " "rapporté à l’objet de répertoire surveillé parent du fichier et à la " "création du nom de fichier. L’exécution du programme se termine une fois que " "tous les évènements capturés du tampon ont été traités." #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "" #| "# B<./fanotify_fid /home/user>\n" #| "Listening for events.\n" #| "FAN_CREATE (file created):\n" #| " Directory /home/user has been modified.\n" #| " Entry \\(aqtestfile.txt\\(aq is not a subdirectory.\n" #| "All events processed successfully. Program exiting.\n" msgid "" "# B<./fanotify_fid /home/user>\n" "Listening for events.\n" "FAN_CREATE (file created):\n" " Directory /home/user has been modified.\n" " Entry \\[aq]testfile.txt\\[aq] is not a subdirectory.\n" "All events processed successfully. Program exiting.\n" "\\&\n" "$ B # In another terminal\n" msgstr "" "# B<./fanotify_fid /home/user>\n" "Écoute de tous les évènements.\n" "FAN_CREATE (fichier créé) :\n" " Répertoire /home/utilisateur a été modifié.\n" " Entrée \\(aqfichiertest.txt\\(aq n’est pas un sous-répertoire.\n" "Tous les évènements ont été traités avec succès. Fin du programme.\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The second session shows a mark being placed on I. This is " "followed by the creation of a directory, I. This " "specific action results in a B event being generated and is " "reported with the B flag set and with the created directory name." msgstr "" "La première session montre une marque placée sur I. C’est " "suivi par la création d’un répertoire, I. Cette " "action spécifique aboutit à la génération d’un évènement B et " "est rapporté avec l’attribut B défini et avec la création du nom " "de répertoire." #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, fuzzy, no-wrap #| msgid "" #| "# B<./fanotify_fid /home/user>\n" #| "Listening for events.\n" #| "FAN_CREATE | FAN_ONDIR (subdirectory created):\n" #| " Directory /home/user has been modified.\n" #| " Entry \\(aqtestdir\\(aq is a subdirectory.\n" #| "All events processed successfully. Program exiting.\n" msgid "" "# B<./fanotify_fid /home/user>\n" "Listening for events.\n" "FAN_CREATE | FAN_ONDIR (subdirectory created):\n" " Directory /home/user has been modified.\n" " Entry \\[aq]testdir\\[aq] is a subdirectory.\n" "All events processed successfully. Program exiting.\n" "\\&\n" "$ B # In another terminal\n" msgstr "" "# B<./fanotify_fid /home/user>\n" "Écoute de tous les évènements.\n" "FAN_CREATE | FAN_ONDIR (sous_répertoire créé) :\n" " Répertoire /home/utilisateur a été modifié.\n" " Entrée \\(aqréptest\\(aq est un sous-répertoire.\n" "Tous les évènements ont été traités avec succès. Fin du programme.\n" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Program source: fanotify_fid.c" msgstr "Source du programme : fanotify_fid.c" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "#define _GNU_SOURCE\n" "#include Eerrno.hE\n" "#include Efcntl.hE\n" "#include Elimits.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/types.hE\n" "#include Esys/stat.hE\n" "#include Esys/fanotify.hE\n" "#include Eunistd.hE\n" "\\&\n" "#define BUF_SIZE 256\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " int fd, ret, event_fd, mount_fd;\n" " ssize_t len, path_len;\n" " char path[PATH_MAX];\n" " char procfd_path[PATH_MAX];\n" " char events_buf[BUF_SIZE];\n" " struct file_handle *file_handle;\n" " struct fanotify_event_metadata *metadata;\n" " struct fanotify_event_info_fid *fid;\n" " const char *file_name;\n" " struct stat sb;\n" "\\&\n" " if (argc != 2) {\n" " fprintf(stderr, \"Invalid number of command line arguments.\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " mount_fd = open(argv[1], O_DIRECTORY | O_RDONLY);\n" " if (mount_fd == -1) {\n" " perror(argv[1]);\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* Create an fanotify file descriptor with FAN_REPORT_DFID_NAME as\n" " a flag so that program can receive fid events with directory\n" " entry name. */\n" "\\&\n" " fd = fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME, 0);\n" " if (fd == -1) {\n" " perror(\"fanotify_init\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* Place a mark on the filesystem object supplied in argv[1]. */\n" "\\&\n" " ret = fanotify_mark(fd, FAN_MARK_ADD | FAN_MARK_ONLYDIR,\n" " FAN_CREATE | FAN_ONDIR,\n" " AT_FDCWD, argv[1]);\n" " if (ret == -1) {\n" " perror(\"fanotify_mark\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " printf(\"Listening for events.\\en\");\n" "\\&\n" " /* Read events from the event queue into a buffer. */\n" "\\&\n" " len = read(fd, events_buf, sizeof(events_buf));\n" " if (len == -1 && errno != EAGAIN) {\n" " perror(\"read\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* Process all events within the buffer. */\n" "\\&\n" " for (metadata = (struct fanotify_event_metadata *) events_buf;\n" " FAN_EVENT_OK(metadata, len);\n" " metadata = FAN_EVENT_NEXT(metadata, len)) {\n" " fid = (struct fanotify_event_info_fid *) (metadata + 1);\n" " file_handle = (struct file_handle *) fid-Ehandle;\n" "\\&\n" " /* Ensure that the event info is of the correct type. */\n" "\\&\n" " if (fid-Ehdr.info_type == FAN_EVENT_INFO_TYPE_FID ||\n" " fid-Ehdr.info_type == FAN_EVENT_INFO_TYPE_DFID) {\n" " file_name = NULL;\n" " } else if (fid-Ehdr.info_type == FAN_EVENT_INFO_TYPE_DFID_NAME) {\n" " file_name = file_handle-Ef_handle +\n" " file_handle-Ehandle_bytes;\n" " } else {\n" " fprintf(stderr, \"Received unexpected event info type.\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " if (metadata-Emask == FAN_CREATE)\n" " printf(\"FAN_CREATE (file created):\\en\");\n" "\\&\n" " if (metadata-Emask == (FAN_CREATE | FAN_ONDIR))\n" " printf(\"FAN_CREATE | FAN_ONDIR (subdirectory created):\\en\");\n" "\\&\n" "\t/* metadata-Efd is set to FAN_NOFD when the group identifies\n" "\t objects by file handles. To obtain a file descriptor for\n" "\t the file object corresponding to an event you can use the\n" "\t struct file_handle that\\[aq]s provided within the\n" "\t fanotify_event_info_fid in conjunction with the\n" "\t open_by_handle_at(2) system call. A check for ESTALE is\n" "\t done to accommodate for the situation where the file handle\n" "\t for the object was deleted prior to this system call. */\n" "\\&\n" " event_fd = open_by_handle_at(mount_fd, file_handle, O_RDONLY);\n" " if (event_fd == -1) {\n" " if (errno == ESTALE) {\n" " printf(\"File handle is no longer valid. \"\n" " \"File has been deleted\\en\");\n" " continue;\n" " } else {\n" " perror(\"open_by_handle_at\");\n" " exit(EXIT_FAILURE);\n" " }\n" " }\n" "\\&\n" " snprintf(procfd_path, sizeof(procfd_path), \"/proc/self/fd/%d\",\n" " event_fd);\n" "\\&\n" " /* Retrieve and print the path of the modified dentry. */\n" "\\&\n" " path_len = readlink(procfd_path, path, sizeof(path) - 1);\n" " if (path_len == -1) {\n" " perror(\"readlink\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " path[path_len] = \\[aq]\\e0\\[aq];\n" " printf(\"\\etDirectory \\[aq]%s\\[aq] has been modified.\\en\", path);\n" "\\&\n" " if (file_name) {\n" " ret = fstatat(event_fd, file_name, &sb, 0);\n" " if (ret == -1) {\n" " if (errno != ENOENT) {\n" " perror(\"fstatat\");\n" " exit(EXIT_FAILURE);\n" " }\n" " printf(\"\\etEntry \\[aq]%s\\[aq] does not exist.\\en\", file_name);\n" " } else if ((sb.st_mode & S_IFMT) == S_IFDIR) {\n" " printf(\"\\etEntry \\[aq]%s\\[aq] is a subdirectory.\\en\", file_name);\n" " } else {\n" " printf(\"\\etEntry \\[aq]%s\\[aq] is not a subdirectory.\\en\",\n" " file_name);\n" " }\n" " }\n" "\\&\n" " /* Close associated file descriptor for this event. */\n" "\\&\n" " close(event_fd);\n" " }\n" "\\&\n" " printf(\"All events processed successfully. Program exiting.\\en\");\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "VOIR AUSSI" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B(2), B(2), B(7)" msgstr "B(2), B(2), B(7)" #. type: TH #: debian-bookworm #, no-wrap msgid "2023-02-05" msgstr "5 février 2023" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "Pages du manuel de Linux 6.03" #. type: Plain text #: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "struct fanotify_event_info_fid {\n" " struct fanotify_event_info_header hdr;\n" " __kernel_fsid_t fsid;\n" " unsigned char file_handle[0];\n" "};\n" msgstr "" "struct fanotify_event_info_fid {\n" " struct fanotify_event_info_header hdr;\n" " __kernel_fsid_t fsid;\n" " unsigned char file_handle[0];\n" "};\n" #. type: TP #: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed #, fuzzy #| msgid "" #| "This is a variable length structure of type struct file_handle. It is an " #| "opaque handle that corresponds to a specified object on a filesystem as " #| "returned by B(2). It can be used to uniquely identify " #| "a file on a filesystem and can be passed as an argument to " #| "B(2). Note that for the directory entry modification " #| "events B, B, and B, the I " #| "identifies the modified directory and not the created/deleted/moved child " #| "object. If the value of I field is " #| "B, the file handle is followed by a null " #| "terminated string that identifies the created/deleted/moved directory " #| "entry name. For other events such as B, B, " #| "B, and B, if the value of I " #| "field is B, the I identifies the " #| "object correlated to the event. If the value of I field is " #| "B, the I identifies the directory " #| "object correlated to the event or the parent directory of a non-directory " #| "object correlated to the event. If the value of I field is " #| "B, the I identifies the same " #| "directory object that would be reported with B " #| "and the file handle is followed by a null terminated string that " #| "identifies the name of a directory entry in that directory, or '.' to " #| "identify the directory object itself." msgid "" "This is a variable length structure of type struct file_handle. It is an " "opaque handle that corresponds to a specified object on a filesystem as " "returned by B(2). It can be used to uniquely identify a " "file on a filesystem and can be passed as an argument to " "B(2). If the value of I field is " "B, the file handle is followed by a null " "terminated string that identifies the created/deleted/moved directory entry " "name. For other events such as B, B, " "B, and B, if the value of I field " "is B, the I identifies the object " "correlated to the event. If the value of I field is " "B, the I identifies the directory " "object correlated to the event or the parent directory of a non-directory " "object correlated to the event. If the value of I field is " "B, the I identifies the same " "directory object that would be reported with B and " "the file handle is followed by a null terminated string that identifies the " "name of a directory entry in that directory, or '.' to identify the " "directory object itself." msgstr "" "C’est une structure de taille variable de type I. C’est un gestionnaire opaque qui correspond à un " "objet précis de système de fichiers comme renvoyé par " "B(2). Il peut être utilisé uniquement pour identifier un " "fichier d’un système de fichiers et peut être passé comme argument à " "B(2). Remarquez que pour les évènements de modification " "d’entrée de répertoire B, B et B, " "I identifie le répertoire modifié et non l’objet " "enfant créé/supprimé/déplacé. Si la valeur du champ I est " "B, le gestionnaire de fichiers est suivi par " "un octet NULL final qui identifie le nom d’entrée de répertoire créé/" "supprimé/déplacé. Pour les autres évènements tels que B, " "B, B et B, si la valeur du champ " "I est B, le I " "identifie l’objet corrélé à l’évènement. Si la valeur du champ I " "est B, le I identifie " "l’objet de répertoire corrélé à l’évènement ou le répertoire parent d’un " "objet non répertoire corrélé à l’évènement. Si la valeur du champ " "I est B, le " "I identifie le même objet de répertoire qui aurait été " "rapporté avec B et le gestionnaire de fichiers est " "suivi par un octet NULL final qui identifie le nom de l’entrée de répertoire " "dans ce répertoire ou « . » pour identifier l’objet du répertoire." #. type: Plain text #: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Errors not directly related to a file (i.e. super block corruption) are " "reported with an invalid I. For these errors, the " "I will have the field I set to B, " "and the handle buffer size set to B<0>." msgstr "" #. type: Plain text #: debian-bookworm msgid "" "The file I contains information about fanotify " "marks for file descriptor I of process I. See B(5) for " "details." msgstr "" "Le fichier I contient des renseignements sur les " "marques fanotify pour le descripteur de fichier I du processus I. " "Consultez B(5) pour plus de précisions." #. type: SH #: debian-bookworm #, no-wrap msgid "VERSIONS" msgstr "VERSIONS" #. type: Plain text #: debian-bookworm #, fuzzy #| msgid "" #| "The fanotify API was introduced in version 2.6.36 of the Linux kernel and " #| "enabled in version 2.6.37. Fdinfo support was added in version 3.8." msgid "" "The fanotify API was introduced in Linux 2.6.36 and enabled in Linux " "2.6.37. Fdinfo support was added in Linux 3.8." msgstr "" "L’interface de programmation fanotify a été introduite dans la " "version 2.6.36 du noyau Linux et activée dans la version 2.6.37. La prise en " "charge de fdinfo a été ajoutée dans la version 3.8." #. type: Plain text #: debian-bookworm msgid "The fanotify API is Linux-specific." msgstr "L’interface de programmation fanotify est spécifique à Linux." #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "# B<./fanotify_example /home>\n" "Press enter key to terminate.\n" "Listening for events.\n" "FAN_OPEN_PERM: File /home/user/temp/notes\n" "FAN_CLOSE_WRITE: File /home/user/temp/notes\n" msgstr "" "# B<./fanotify_exemple /home>\n" "Appuyer sur la touche Entrée pour quitter.\n" "En écoute d’événements.\n" "FAN_OPEN_PERM : Fichier /home/utilisateur/temp/notes\n" "FAN_CLOSE_WRITE : Fichier /home/utilisateur/temp/notes\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "Listening for events stopped.\n" msgstr "Arrêt de l’écoute d’événements.\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#define _GNU_SOURCE /* Needed to get O_LARGEFILE definition */\n" "#include Eerrno.hE\n" "#include Efcntl.hE\n" "#include Elimits.hE\n" "#include Epoll.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/fanotify.hE\n" "#include Eunistd.hE\n" msgstr "" "#define _GNU_SOURCE /* Nécessaire pour obtenir la définition de O_LARGEFILE */\n" "#include Eerrno.hE\n" "#include Efcntl.hE\n" "#include Elimits.hE\n" "#include Epoll.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/fanotify.hE\n" "#include Eunistd.hE\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "/* Read all available fanotify events from the file descriptor \\(aqfd\\(aq. */\n" msgid "/* Read all available fanotify events from the file descriptor \\[aq]fd\\[aq]. */\n" msgstr "" "/* Lire tous les événements fanotify disponibles à partir du descripteur\n" " de fichier « fd » */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "static void\n" "handle_events(int fd)\n" "{\n" " const struct fanotify_event_metadata *metadata;\n" " struct fanotify_event_metadata buf[200];\n" " ssize_t len;\n" " char path[PATH_MAX];\n" " ssize_t path_len;\n" " char procfd_path[PATH_MAX];\n" " struct fanotify_response response;\n" msgstr "" "static void\n" "handle_events(int fd)\n" "{\n" " const struct fanotify_event_metadata *metadata;\n" " struct fanotify_event_metadata buf[200];\n" " ssize_t len;\n" " char path[PATH_MAX];\n" " ssize_t path_len;\n" " char procfd_path[PATH_MAX];\n" " struct fanotify_response response;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Loop while events can be read from fanotify file descriptor. */\n" msgstr "" " /* Boucler tant que les événements peuvent être lus à partir du\n" " descripteur de fichier fanotify */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " for (;;) {\n" msgstr " for (;;) {\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Read some events. */\n" msgstr " /* Lire certains événements */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " len = read(fd, buf, sizeof(buf));\n" " if (len == -1 && errno != EAGAIN) {\n" " perror(\"read\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " len = read(fd, buf, sizeof(buf));\n" " if (len == -1 && errno != EAGAIN) {\n" " perror(\"read\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Check if end of available data reached. */\n" msgstr " /* Vérifier si la fin des données disponibles est atteinte */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (len E= 0)\n" " break;\n" msgstr "" " if (len E= 0)\n" " break;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Point to the first event in the buffer. */\n" msgstr " /* Pointer vers le premier événement du tampon */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " metadata = buf;\n" msgstr " metadata = buf;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Loop over all events in the buffer. */\n" msgstr " /* Boucler sur tous les événements du tampon */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " while (FAN_EVENT_OK(metadata, len)) {\n" msgstr " while (FAN_EVENT_OK(metadata, len)) {\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Check that run-time and compile-time structures match. */\n" msgstr "" " /* Vérifier que les structures au moment de l’exécution et\n" " de la compilation correspondent */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (metadata-Evers != FANOTIFY_METADATA_VERSION) {\n" " fprintf(stderr,\n" " \"Mismatch of fanotify metadata version.\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " if (metadata-Evers != FANOTIFY_METADATA_VERSION) {\n" " fprintf(stderr,\n" " \"Non correspondance de version de métadonnées fanotify.\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* metadata-Efd contains either FAN_NOFD, indicating a\n" " queue overflow, or a file descriptor (a nonnegative\n" " integer). Here, we simply ignore queue overflow. */\n" msgstr "" " /* metadata-Efd contient soit FAN_NOFD, indiquant un\n" " dépassement de file, soit un descripteur de fichier\n" " (un entier positif).\n" " Ici, le dépassement de file est simplement ignoré. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " if (metadata-Efd E= 0) {\n" msgstr " if (metadata-Efd E= 0) {\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Handle open permission event. */\n" msgstr " /* Traiter l’événement de permission d’ouverture */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (metadata-Emask & FAN_OPEN_PERM) {\n" " printf(\"FAN_OPEN_PERM: \");\n" msgstr "" " if (metadata-Emask & FAN_OPEN_PERM) {\n" " printf(\"FAN_OPEN_PERM : \");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Allow file to be opened. */\n" msgstr " /* Permettre d’ouvrir le fichier */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " response.fd = metadata-Efd;\n" " response.response = FAN_ALLOW;\n" " write(fd, &response, sizeof(response));\n" " }\n" msgstr "" " response.fd = metadata-Efd;\n" " response.response = FAN_ALLOW;\n" " write(fd, &response, sizeof(response));\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Handle closing of writable file event. */\n" msgstr "" " /* Traiter l’événement de fermeture de fichier ouvert\n" " en écriture */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (metadata-Emask & FAN_CLOSE_WRITE)\n" " printf(\"FAN_CLOSE_WRITE: \");\n" msgstr "" " if (metadata-Emask & FAN_CLOSE_WRITE)\n" " printf(\"FAN_CLOSE_WRITE : \");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Retrieve and print pathname of the accessed file. */\n" msgstr " /* Récupérer et afficher le chemin du fichier accédé */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " snprintf(procfd_path, sizeof(procfd_path),\n" " \"/proc/self/fd/%d\", metadata-Efd);\n" " path_len = readlink(procfd_path, path,\n" " sizeof(path) - 1);\n" " if (path_len == -1) {\n" " perror(\"readlink\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " snprintf(procfd_path, sizeof(procfd_path),\n" " \"/proc/self/fd/%d\", metadata-Efd);\n" " path_len = readlink(procfd_path, path,\n" " sizeof(path) - 1);\n" " if (path_len == -1) {\n" " perror(\"readlink\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " path[path_len] = \\(aq\\e0\\(aq;\n" #| " printf(\"File %s\\en\", path);\n" msgid "" " path[path_len] = \\[aq]\\e0\\[aq];\n" " printf(\"File %s\\en\", path);\n" msgstr "" " path[path_len] = \\(aq\\e0\\(aq;\n" " printf(\"File %s\\en\", path);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Close the file descriptor of the event. */\n" msgstr " /* Fermer le descripteur de fichier de l’événement */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " close(metadata-Efd);\n" " }\n" msgstr "" " close(metadata-Efd);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Advance to next event. */\n" msgstr " /* Avancer au prochain événement */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " metadata = FAN_EVENT_NEXT(metadata, len);\n" " }\n" " }\n" "}\n" msgstr "" " metadata = FAN_EVENT_NEXT(metadata, len);\n" " }\n" " }\n" "}\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " char buf;\n" " int fd, poll_num;\n" " nfds_t nfds;\n" " struct pollfd fds[2];\n" msgstr "" "int\n" "main(int argc, char *argv[])\n" "{\n" " char buf;\n" " int fd, poll_num;\n" " nfds_t nfds;\n" " struct pollfd fds[2];\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Check mount point is supplied. */\n" msgstr " /* Vérifier qu’un point de montage est fourni */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (argc != 2) {\n" " fprintf(stderr, \"Usage: %s MOUNT\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " if (argc != 2) {\n" " fprintf(stderr, \"Utilisation : %s MONTAGE\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " printf(\"Press enter key to terminate.\\en\");\n" msgstr " printf(\"Appuyer sur la touche Entrée pour quitter.\\en\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Create the file descriptor for accessing the fanotify API. */\n" msgstr "" " /* Créer le descripteur de fichier pour accéder à l’interface de\n" " programmation fanotify */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " fd = fanotify_init(FAN_CLOEXEC | FAN_CLASS_CONTENT | FAN_NONBLOCK,\n" " O_RDONLY | O_LARGEFILE);\n" " if (fd == -1) {\n" " perror(\"fanotify_init\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " fd = fanotify_init(FAN_CLOEXEC | FAN_CLASS_CONTENT | FAN_NONBLOCK,\n" " O_RDONLY | O_LARGEFILE);\n" " if (fd == -1) {\n" " perror(\"fanotify_init\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* Mark the mount for:\n" " - permission events before opening files\n" " - notification events after closing a write-enabled\n" " file descriptor. */\n" msgstr "" " /* Marquer le montage pour :\n" " — les événements de permission avant d’ouvrir les fichiers\n" " — les événements de notification après fermeture de descripteur\n" " de fichier ouvert en écriture */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (fanotify_mark(fd, FAN_MARK_ADD | FAN_MARK_MOUNT,\n" " FAN_OPEN_PERM | FAN_CLOSE_WRITE, AT_FDCWD,\n" " argv[1]) == -1) {\n" " perror(\"fanotify_mark\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " if (fanotify_mark(fd, FAN_MARK_ADD | FAN_MARK_MOUNT,\n" " FAN_OPEN_PERM | FAN_CLOSE_WRITE, AT_FDCWD,\n" " argv[1]) == -1) {\n" " perror(\"fanotify_mark\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Prepare for polling. */\n" msgstr " /* Préparer pour la scrutation (polling) */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " nfds = 2;\n" msgstr " nfds = 2;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " fds[0].fd = STDIN_FILENO; /* Console input */\n" " fds[0].events = POLLIN;\n" msgstr "" " fds[0].fd = STDIN_FILENO; /* Entrée de console */\n" " fds[0].events = POLLIN;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " fds[1].fd = fd; /* Fanotify input */\n" " fds[1].events = POLLIN;\n" msgstr "" " fds[1].fd = fd; /* Entrée fanotify */\n" " fds[1].events = POLLIN;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* This is the loop to wait for incoming events. */\n" msgstr " /* Boucle en attente d’arrivée d’événements */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " printf(\"Listening for events.\\en\");\n" msgstr " printf(\"En écoute d’événements.\\en\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " while (1) {\n" " poll_num = poll(fds, nfds, -1);\n" " if (poll_num == -1) {\n" " if (errno == EINTR) /* Interrupted by a signal */\n" " continue; /* Restart poll() */\n" msgstr "" " while (1) {\n" " poll_num = poll(fds, nfds, -1);\n" " if (poll_num == -1) {\n" " if (errno == EINTR) /* Interrompu par un signal */\n" " continue; /* Redémarrage de poll() */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " perror(\"poll\"); /* Unexpected error */\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " perror(\"poll\"); /* Erreur inattendue */\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (poll_num E 0) {\n" " if (fds[0].revents & POLLIN) {\n" msgstr "" " if (poll_num E 0) {\n" " if (fds[0].revents & POLLIN) {\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Console input is available: empty stdin and quit. */\n" msgstr "" " /* Entrée de console disponible :\n" " effacer l’entrée standard et quitter */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " while (read(STDIN_FILENO, &buf, 1) E 0 && buf != \\[aq]\\en\\[aq])\n" " continue;\n" " break;\n" " }\n" msgstr "" " while (read(STDIN_FILENO, &buf, 1) E 0 && buf != \\[aq]\\en\\[aq])\n" " continue;\n" " break;\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " if (fds[1].revents & POLLIN) {\n" msgstr " if (fds[1].revents & POLLIN) {\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Fanotify events are available. */\n" msgstr " /* Des événements fanotify sont disponibles */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " handle_events(fd);\n" " }\n" " }\n" " }\n" msgstr "" " handle_events(fd);\n" " }\n" " }\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " printf(\"Listening for events stopped.\\en\");\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" " printf(\"Arrêt de l’écoute d’événements.\\en\");\n" " exit(EXIT_SUCCESS);\n" "}\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| "# B<./fanotify_fid /home/user>\n" #| "Listening for events.\n" #| "FAN_CREATE (file created):\n" #| " Directory /home/user has been modified.\n" #| " Entry \\(aqtestfile.txt\\(aq is not a subdirectory.\n" #| "All events processed successfully. Program exiting.\n" msgid "" "# B<./fanotify_fid /home/user>\n" "Listening for events.\n" "FAN_CREATE (file created):\n" " Directory /home/user has been modified.\n" " Entry \\[aq]testfile.txt\\[aq] is not a subdirectory.\n" "All events processed successfully. Program exiting.\n" msgstr "" "# B<./fanotify_fid /home/user>\n" "Écoute de tous les évènements.\n" "FAN_CREATE (fichier créé) :\n" " Répertoire /home/utilisateur a été modifié.\n" " Entrée \\(aqfichiertest.txt\\(aq n’est pas un sous-répertoire.\n" "Tous les évènements ont été traités avec succès. Fin du programme.\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "$ B # In another terminal\n" msgstr "$ B # Dans un autre terminal\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| "# B<./fanotify_fid /home/user>\n" #| "Listening for events.\n" #| "FAN_CREATE | FAN_ONDIR (subdirectory created):\n" #| " Directory /home/user has been modified.\n" #| " Entry \\(aqtestdir\\(aq is a subdirectory.\n" #| "All events processed successfully. Program exiting.\n" msgid "" "# B<./fanotify_fid /home/user>\n" "Listening for events.\n" "FAN_CREATE | FAN_ONDIR (subdirectory created):\n" " Directory /home/user has been modified.\n" " Entry \\[aq]testdir\\[aq] is a subdirectory.\n" "All events processed successfully. Program exiting.\n" msgstr "" "# B<./fanotify_fid /home/user>\n" "Écoute de tous les évènements.\n" "FAN_CREATE | FAN_ONDIR (sous_répertoire créé) :\n" " Répertoire /home/utilisateur a été modifié.\n" " Entrée \\(aqréptest\\(aq est un sous-répertoire.\n" "Tous les évènements ont été traités avec succès. Fin du programme.\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "$ B # In another terminal\n" msgstr "$ B # Dans un autre terminal\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#define _GNU_SOURCE\n" "#include Eerrno.hE\n" "#include Efcntl.hE\n" "#include Elimits.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/types.hE\n" "#include Esys/stat.hE\n" "#include Esys/fanotify.hE\n" "#include Eunistd.hE\n" msgstr "" "#define _GNU_SOURCE\n" "#include Eerrno.hE\n" "#include Efcntl.hE\n" "#include Elimits.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/types.hE\n" "#include Esys/stat.hE\n" "#include Esys/fanotify.hE\n" "#include Eunistd.hE\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "#define BUF_SIZE 256\n" msgstr "#define BUF_SIZE 256\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " int fd, ret, event_fd, mount_fd;\n" " ssize_t len, path_len;\n" " char path[PATH_MAX];\n" " char procfd_path[PATH_MAX];\n" " char events_buf[BUF_SIZE];\n" " struct file_handle *file_handle;\n" " struct fanotify_event_metadata *metadata;\n" " struct fanotify_event_info_fid *fid;\n" " const char *file_name;\n" " struct stat sb;\n" msgstr "" "int\n" "main(int argc, char *argv[])\n" "{\n" " int fd, ret, event_fd, mount_fd;\n" " ssize_t len, path_len;\n" " char path[PATH_MAX];\n" " char procfd_path[PATH_MAX];\n" " char events_buf[BUF_SIZE];\n" " struct file_handle *file_handle;\n" " struct fanotify_event_metadata *metadata;\n" " struct fanotify_event_info_fid *fid;\n" " const char *file_name;\n" " struct stat sb;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (argc != 2) {\n" " fprintf(stderr, \"Invalid number of command line arguments.\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " if (argc != 2) {\n" " fprintf(stderr, \"nb d’arguments de ligne de commande non valable.\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " mount_fd = open(argv[1], O_DIRECTORY | O_RDONLY);\n" " if (mount_fd == -1) {\n" " perror(argv[1]);\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " mount_fd = open(argv[1], O_DIRECTORY | O_RDONLY);\n" " if (mount_fd == -1) {\n" " perror(argv[1]);\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* Create an fanotify file descriptor with FAN_REPORT_DFID_NAME as\n" " a flag so that program can receive fid events with directory\n" " entry name. */\n" msgstr "" " /* Créer un descripteur de fichier avec FAN_REPORT_DFID_NAME sous\n" " forme d’attribut de façon que le programme puisse recevoir des\n" " évènements fid avec des noms de répertoire d’entrée */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " fd = fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME, 0);\n" " if (fd == -1) {\n" " perror(\"fanotify_init\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " fd = fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME, 0);\n" " if (fd == -1) {\n" " perror(\"fanotify_init\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Place a mark on the filesystem object supplied in argv[1]. */\n" msgstr "" " /* Placer une marque sur un objet de système de fichiers\n" " fourni dans argv[1]. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " ret = fanotify_mark(fd, FAN_MARK_ADD | FAN_MARK_ONLYDIR,\n" " FAN_CREATE | FAN_ONDIR,\n" " AT_FDCWD, argv[1]);\n" " if (ret == -1) {\n" " perror(\"fanotify_mark\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " ret = fanotify_mark(fd, FAN_MARK_ADD | FAN_MARK_ONLYDIR,\n" " FAN_CREATE | FAN_ONDIR,\n" " AT_FDCWD, argv[1]);\n" " if (ret == -1) {\n" " perror(\"fanotify_mark\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Read events from the event queue into a buffer. */\n" msgstr " /* Lire les évènements dans la file dans le tampon */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " len = read(fd, events_buf, sizeof(events_buf));\n" " if (len == -1 && errno != EAGAIN) {\n" " perror(\"read\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " len = read(fd, events_buf, sizeof(events_buf));\n" " if (len == -1 && errno != EAGAIN) {\n" " perror(\"read\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Process all events within the buffer. */\n" msgstr " /* Traiter tous les événements du tampon */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " for (metadata = (struct fanotify_event_metadata *) events_buf;\n" " FAN_EVENT_OK(metadata, len);\n" " metadata = FAN_EVENT_NEXT(metadata, len)) {\n" " fid = (struct fanotify_event_info_fid *) (metadata + 1);\n" " file_handle = (struct file_handle *) fid-Ehandle;\n" msgstr "" " for (metadata = (struct fanotify_event_metadata *) events_buf;\n" " FAN_EVENT_OK(metadata, len);\n" " metadata = FAN_EVENT_NEXT(metadata, len)) {\n" " fid = (struct fanotify_event_info_fid *) (metadata + 1);\n" " file_handle = (struct file_handle *) fid-Ehandle;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Ensure that the event info is of the correct type. */\n" msgstr " /* Assurer que l’info d’évènement soit du type correct */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (fid-Ehdr.info_type == FAN_EVENT_INFO_TYPE_FID ||\n" " fid-Ehdr.info_type == FAN_EVENT_INFO_TYPE_DFID) {\n" " file_name = NULL;\n" " } else if (fid-Ehdr.info_type == FAN_EVENT_INFO_TYPE_DFID_NAME) {\n" " file_name = file_handle-Ef_handle +\n" " file_handle-Ehandle_bytes;\n" " } else {\n" " fprintf(stderr, \"Received unexpected event info type.\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " if (fid-Ehdr.info_type == FAN_EVENT_INFO_TYPE_FID ||\n" " fid-Ehdr.info_type == FAN_EVENT_INFO_TYPE_DFID) {\n" " file_name = NULL;\n" " } else if (fid-Ehdr.info_type == FAN_EVENT_INFO_TYPE_DFID_NAME) {\n" " file_name = file_handle-Ef_handle +\n" " file_handle-Ehandle_bytes;\n" " } else {\n" " fprintf(stderr, \"Type inattendu d’évènement reçu.\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (metadata-Emask == FAN_CREATE)\n" " printf(\"FAN_CREATE (file created):\\en\");\n" msgstr "" " if (metadata-Emask == FAN_CREATE)\n" " printf(\"FAN_CREATE (file created):\\en\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (metadata-Emask == (FAN_CREATE | FAN_ONDIR))\n" " printf(\"FAN_CREATE | FAN_ONDIR (subdirectory created):\\en\");\n" msgstr "" " if (metadata-Emask == (FAN_CREATE | FAN_ONDIR))\n" " printf(\"FAN_CREATE | FAN_ONDIR (sous_répertoire créé) :\\en\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| "\t/* metadata-Efd is set to FAN_NOFD when the group identifies\n" #| "\t objects by file handles. To obtain a file descriptor for\n" #| "\t the file object corresponding to an event you can use the\n" #| "\t struct file_handle that\\(aqs provided within the\n" #| "\t fanotify_event_info_fid in conjunction with the\n" #| "\t open_by_handle_at(2) system call. A check for ESTALE is\n" #| "\t done to accommodate for the situation where the file handle\n" #| "\t for the object was deleted prior to this system call. */\n" msgid "" "\t/* metadata-Efd is set to FAN_NOFD when the group identifies\n" "\t objects by file handles. To obtain a file descriptor for\n" "\t the file object corresponding to an event you can use the\n" "\t struct file_handle that\\[aq]s provided within the\n" "\t fanotify_event_info_fid in conjunction with the\n" "\t open_by_handle_at(2) system call. A check for ESTALE is\n" "\t done to accommodate for the situation where the file handle\n" "\t for the object was deleted prior to this system call. */\n" msgstr "" "\t/* metadata-Efd est défini à FAN_NOFD quand le groupe identifie\n" "\t les objets avec des gestionnaires de fichiers. Pour obtenir un\n" "\t descripteur de fichier pour l’objet de fichier correspondant à\n" "\t à un évènement, utiliser struct gestionnaire_fichier qui est\n" "\t fourni dans le fanotify_event_info_fid conjointement avec l’appel\n" "\t système open_by_handle_at(2). Une vérification pour ESTALE est\n" "\t faite pour supporter la situation où le gestionnaire de fichiers\n" "\t pour l’objet ait été détruit avant cet appel système. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " event_fd = open_by_handle_at(mount_fd, file_handle, O_RDONLY);\n" " if (event_fd == -1) {\n" " if (errno == ESTALE) {\n" " printf(\"File handle is no longer valid. \"\n" " \"File has been deleted\\en\");\n" " continue;\n" " } else {\n" " perror(\"open_by_handle_at\");\n" " exit(EXIT_FAILURE);\n" " }\n" " }\n" msgstr "" " event_fd = open_by_handle_at(mount_fd, file_handle, O_RDONLY);\n" " if (event_fd == -1) {\n" " if (errno == ESTALE) {\n" " printf(\"Le gestionnaire de fichiers n’est plus valable, \"\n" " \"le fichier a été supprimé\\en\");\n" " continue;\n" " } else {\n" " perror(\"open_by_handle_at\");\n" " exit(EXIT_FAILURE);\n" " }\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " snprintf(procfd_path, sizeof(procfd_path), \"/proc/self/fd/%d\",\n" " event_fd);\n" msgstr "" " snprintf(procfd_path, sizeof(procfd_path), \"/proc/self/fd/%d\",\n" " event_fd);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Retrieve and print the path of the modified dentry. */\n" msgstr " /* Retrouver et afficher le chemin de l’entrée modifiée */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " path_len = readlink(procfd_path, path, sizeof(path) - 1);\n" " if (path_len == -1) {\n" " perror(\"readlink\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " path_len = readlink(procfd_path, path, sizeof(path) - 1);\n" " if (path_len == -1) {\n" " perror(\"readlink\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " path[path_len] = \\(aq\\e0\\(aq;\n" #| " printf(\"\\etDirectory \\(aq%s\\(aq has been modified.\\en\", path);\n" msgid "" " path[path_len] = \\[aq]\\e0\\[aq];\n" " printf(\"\\etDirectory \\[aq]%s\\[aq] has been modified.\\en\", path);\n" msgstr "" " path[path_len] = \\(aq\\e0\\(aq;\n" " printf(\"\\eLe répertoire \\(aq%s\\(aq a été modifié\\en\", path);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, fuzzy, no-wrap #| msgid "" #| " if (file_name) {\n" #| " ret = fstatat(event_fd, file_name, &sb, 0);\n" #| " if (ret == -1) {\n" #| " if (errno != ENOENT) {\n" #| " perror(\"fstatat\");\n" #| " exit(EXIT_FAILURE);\n" #| " }\n" #| " printf(\"\\etEntry \\(aq%s\\(aq does not exist.\\en\", file_name);\n" #| " } else if ((sb.st_mode & S_IFMT) == S_IFDIR) {\n" #| " printf(\"\\etEntry \\(aq%s\\(aq is a subdirectory.\\en\", file_name);\n" #| " } else {\n" #| " printf(\"\\etEntry \\(aq%s\\(aq is not a subdirectory.\\en\",\n" #| " file_name);\n" #| " }\n" #| " }\n" msgid "" " if (file_name) {\n" " ret = fstatat(event_fd, file_name, &sb, 0);\n" " if (ret == -1) {\n" " if (errno != ENOENT) {\n" " perror(\"fstatat\");\n" " exit(EXIT_FAILURE);\n" " }\n" " printf(\"\\etEntry \\[aq]%s\\[aq] does not exist.\\en\", file_name);\n" " } else if ((sb.st_mode & S_IFMT) == S_IFDIR) {\n" " printf(\"\\etEntry \\[aq]%s\\[aq] is a subdirectory.\\en\", file_name);\n" " } else {\n" " printf(\"\\etEntry \\[aq]%s\\[aq] is not a subdirectory.\\en\",\n" " file_name);\n" " }\n" " }\n" msgstr "" " if (file_name) {\n" " ret = fstatat(event_fd, file_name, &sb, 0);\n" " if (ret == -1) {\n" " if (errno != ENOENT) {\n" " perror(\"fstatat\");\n" " exit(EXIT_FAILURE);\n" " }\n" " printf(\"\\etL’entrée \\(aq%s\\(aq n’existe pas\\en\", file_name);\n" " } else if ((sb.st_mode & S_IFMT) == S_IFDIR) {\n" " printf(\"\\etL’entrée \\(aq%s\\(aq est un sous-répertoire\\en\", file_name);\n" " } else {\n" " printf(\"\\etL’entrée \\(aq%s\\(aq n’est pas un sous-répertoire\\en\",\n" " file_name);\n" " }\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Close associated file descriptor for this event. */\n" msgstr " /* Fermer le descripteur de fichier de l’événement */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " close(event_fd);\n" " }\n" msgstr "" " close(event_fd);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " printf(\"All events processed successfully. Program exiting.\\en\");\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" " printf(\"Tous les évènements traités avec succès, fin du programme.\\en\");\n" " exit(EXIT_SUCCESS);\n" "}\n" #. type: TH #: debian-unstable opensuse-tumbleweed #, no-wrap msgid "2023-05-03" msgstr "3 mai 2023" #. type: TH #: debian-unstable opensuse-tumbleweed #, no-wrap msgid "Linux man-pages 6.05.01" msgstr "Pages du manuel de Linux 6.05.01" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "2023-04-03" msgstr "3 avril 2023" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "Pages du manuel de Linux 6.04"