# 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, 2013. # Cédric Boutillier , 2011, 2012. # Frédéric Hantrais , 2013, 2014. # Jean-Philippe MENGUAL , 2020-2024. msgid "" msgstr "" "Project-Id-Version: manpages-l10n 4.22.0\n" "POT-Creation-Date: 2024-06-01 05:59+0200\n" "PO-Revision-Date: 2024-06-02 09:57+0200\n" "Last-Translator: Jean-Philippe MENGUAL \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: Lokalize 22.12.3\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "kcmp" msgstr "kcmp" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "2 mai 2024" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "Pages du manuel de Linux 6.8" #. 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 "" "kcmp - compare two processes to determine if they share a kernel resource" msgstr "" "kcmp - comparer deux processus afin de déterminer s'ils partagent des " "ressources du noyau" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "LIBRARY" msgstr "BIBLIOTHÈQUE" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Standard C library (I, I<-lc>)" msgstr "Bibliothèque C standard (I, I<-lc>)" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SYNOPSIS" msgstr "SYNOPSIS" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "B<#include Elinux/kcmp.hE> /* Definition of B constants */\n" "B<#include Esys/syscall.hE> /* Definition of B constants */\n" "B<#include Eunistd.hE>\n" msgstr "" "B<#include Elinux/kcmp.hE> /* Définition des constantes B */\n" "B<#include Esys/syscall.hE> /* Définition des constantes B */\\n\"\n" "B<#include Eunistd.hE>\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<, pid_t >IB<, int >IB<,>\n" "B< unsigned long >IB<, unsigned long >IB<);>\n" msgstr "" "BIB<, pid_t >IB<, int >IB<,>\\n\"\n" "B< unsigned long >IB<, unsigned long >IB<);>\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I: glibc provides no wrapper for B(), necessitating the use of " "B(2)." msgstr "" "I : la glibc ne fournit pas d'enveloppe autour de B(), " "nécessitant l'utilisation de B(2)." #. 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 B() system call can be used to check whether the two processes " "identified by I and I share a kernel resource such as virtual " "memory, file descriptors, and so on." msgstr "" "L'appel système B() peut être utilisé pour vérifier si deux processus " "identifiés par I et I partagent des ressources du noyau, telles " "que de la mémoire virtuelle, des descripteurs de fichiers (FD), etc. " #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Permission to employ B() is governed by ptrace access mode " "B checks against both I and I; see " "B(2)." msgstr "" "Le droit d'utiliser B() est régi par les droits d'accès de ptrace aux " "vérifications B vis-à-vis de I et de " "I ; voir B(2)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I argument specifies which resource is to be compared in the two " "processes. It has one of the following values:" msgstr "" "L'argument I indique pour quelle ressource une comparaison doit être " "effectuée entre les deux processus. Il peut prendre l'une des valeurs " "suivantes :" #. 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 "" "Check whether a file descriptor I in the process I refers to the " "same open file description (see B(2)) as file descriptor I in " "the process I. The existence of two file descriptors that refer to " "the same open file description can occur as a result of B(2) (and " "similar) B(2), or passing file descriptors via a domain socket (see " "B(7))." msgstr "" "Vérifier si un descripteur de fichier (FD) I utilisé par le processus " "I fait référence à la même description de fichier ouvert (consultez " "B(2)) que le descripteur de fichier I utilisé par le processus " "I. L'existence de deux descripteurs de fichiers se rapportant à la " "même description de fichier ouvert peut résulter d'un B(2) (et " "équivalent), d'un B(2), ou du passage de descripteurs de fichiers à " "l'aide d'un socket de domaine (consultez B(7))." #. 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 "" "Check whether the processes share the same set of open file descriptors. " "The arguments I and I are ignored. See the discussion of the " "B flag in B(2)." msgstr "" "Vérifier si le processus partage un même ensemble de descripteurs de " "fichiers ouverts. Les arguments I et I ne sont pas pris en " "compte. Consultez le point sur l'attribut 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 "" "Check whether the processes share the same filesystem information (i.e., " "file mode creation mask, working directory, and filesystem root). The " "arguments I and I are ignored. See the discussion of the " "B flag in B(2)." msgstr "" "Vérifier si les processus partagent les même informations relatives au " "système de fichiers (c'est-à-dire le masque de création de mode de fichiers, " "le répertoire de travail et la racine du système de fichiers). Les arguments " "I et I ne sont pas pris en compte. Voir le point sur l'attribut " "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 "" "Check whether the processes share I/O context. The arguments I and " "I are ignored. See the discussion of the B flag in " "B(2)." msgstr "" "Vérifier si les processus partagent un contexte E/S. Les arguments I " "et I ne sont pas pris en compte. Voir le point sur l'attribut " "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 "" "Check whether the processes share the same table of signal dispositions. " "The arguments I and I are ignored. See the discussion of the " "B flag in B(2)." msgstr "" "Vérifier si les processus partagent la même table de disposition des " "signaux. Les arguments I et I ne sont pas pris en compte. Voir " "le point sur l'attribut 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 "" "Check whether the processes share the same list of System\\ V semaphore undo " "operations. The arguments I and I are ignored. See the " "discussion of the B flag in B(2)." msgstr "" "Vérifier si les processus partagent la même liste d'opérations «\\ undo\\ » " "pour les sémaphores System V. Les arguments I et I ne sont pas " "pris en compte. VOir le point sur l'attribut 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 "" "Check whether the processes share the same address space. The arguments " "I and I are ignored. See the discussion of the B flag " "in B(2)." msgstr "" "Vérifier si les processus partagent le même espace d'adressage. Les " "arguments I et I ne sont pas pris en compte. Voir le point sur " "l'attribut 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 (since Linux 4.13)" msgstr "B (depuis Linux 4.13)" #. commit 0791e3644e5ef21646fe565b9061788d05ec71d4 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Check whether the file descriptor I of the process I is present " "in the B(7) instance described by I of the process I. " "The argument I is a pointer to a structure where the target file is " "described. This structure has the form:" msgstr "" "Vérifier si le descripteur de fichier I du processus I est " "présent dans l'instance B(7) décrite par I du processus " "I. Le paramètre I est un pointeur vers une structure où est " "décrit le fichier cible. Cette structure prend la forme :" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "struct kcmp_epoll_slot {\n" " __u32 efd;\n" " __u32 tfd;\n" " __u64 toff;\n" "};\n" msgstr "" "struct kcmp_epoll_slot {\n" " __u32 efd;\n" " __u32 tfd;\n" " __u64 toff;\n" "};\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Within this structure, I is an epoll file descriptor returned from " "B(2), I is a target file descriptor number, and I " "is a target file offset counted from zero. Several different targets may be " "registered with the same file descriptor number and setting a specific " "offset helps to investigate each of them." msgstr "" "Dans cette structure, I est un descripteur de fichier epoll renvoyé " "depuis B(2), I est un numéro de descripteur de fichier " "cible et I est une position du fichier cible déterminée à partir de " "zéro. Plusieurs cibles peuvent être enregistrées avec le même numéro de " "descripteur de fichier, indiquer une position aide donc à examiner chacune " "d'elles." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Note the B() is not protected against false positives which may occur " "if the processes are currently running. One should stop the processes by " "sending B (see B(7)) prior to inspection with this system " "call to obtain meaningful results." msgstr "" "Remarquez que B() n'est pas à l'abri de « faux positifs » qui peuvent " "survenir si des tâches sont en cours d'exécution. Pour obtenir des résultats " "pertinents, on peut arrêter ces tâches au moyen de l'appel système " "B (consulter B(7)) avant de commencer l'examen avec cet " "appel système pour des résultats plus significatifs." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "RETURN VALUE" msgstr "VALEUR RENVOYÉE" #. 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 a successful call to B() is simply the result of " "arithmetic comparison of kernel pointers (when the kernel compares " "resources, it uses their memory addresses)." msgstr "" "La valeur renvoyée par un appel réussi à B() est le résultat de la " "comparaison arithmétique des pointeurs du noyau (lorsque le noyau compare " "des ressources, il utilise leurs adresses en mémoire)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The easiest way to explain is to consider an example. Suppose that I " "and I are the addresses of appropriate resources, then the return value " "is one of the following:" msgstr "" "Pour mieux comprendre, regardons l'exemple suivant. Supposons que I et " "I sont les adresses des ressources concernées, alors la valeur renvoyée " "sera l'une des suivantes :" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<0>" msgstr "B<0>" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I is equal to I; in other words, the two processes share the " "resource." msgstr "" "I est égal à I ; en d'autres termes, les deux processus partagent la " "même ressource." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<1>" msgstr "B<1>" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "I is less than I." msgstr "I est inférieur à I." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<2>" msgstr "B<2>" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "I is greater than I." msgstr "I est supérieur à I." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<3>" msgstr "B<3>" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "I is not equal to I, but ordering information is unavailable." msgstr "" "I n'est pas égal à I, mais aucune information concernant l'ordre " "n'est disponible." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "On error, -1 is returned, and I is set to indicate the error." msgstr "" "En cas d'erreur, la valeur de retour est B<-1> et I est définie pour " "préciser l'erreur." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() was designed to return values suitable for sorting. This is " "particularly handy if one needs to compare a large number of file " "descriptors." msgstr "" "B() a été conçu pour renvoyer des variables pouvant être triées. C'est " "particulièrement pratique lorsqu'on souhaite comparer un grand nombre de " "descripteurs de fichiers." #. 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: 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 "" "I is B and I or I is not an open file descriptor." msgstr "" "I est B et I ou I n'est pas un descripteur de " "fichier 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 "" "The epoll slot addressed by I is outside of the user's address space." msgstr "" "L'emplacement epoll désigné par I dépasse l'espace d'adressage de " "l'utilisateur." #. 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 "I is invalid." msgstr "I 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 target file is not present in B(7) instance." msgstr "Le fichier cible n'est pas présent dans l'instance B(7)." #. 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 "" "Insufficient permission to inspect process resources. The B " "capability is required to inspect processes that you do not own. Other " "ptrace limitations may also apply, such as B, which, " "when I is 2, limits B() to child " "processes; see B(2)." msgstr "" "Permissions insuffisantes pour inspecter les ressources du processus. Le " "privilège B est nécessaire pour inspecter les processus dont " "vous n'êtes pas propriétaire. D'autres limites de ptrace peuvent également " "s'appliquer, telles que B qui, lorsque I vaut B<2>, limite B() aux processus " "enfants ; voir 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 "Process I or I does not exist." msgstr "Au moins l'un des processus I ou I n'existe pas." #. 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 msgid "Linux 3.5." msgstr "Linux 3.5." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Before Linux 5.12, this system call is available only if the kernel is " "configured with B, since the original purpose of " "the system call was for the checkpoint/restore in user space (CRIU) " "feature. (The alternative to this system call would have been to expose " "suitable process information via the B(5) filesystem; this was deemed " "to be unsuitable for security reasons.) Since Linux 5.12, this system call " "is also available if the kernel is configured with B." msgstr "" "Avant Linux 5.12, cet appel système n'était disponible que si le noyau avait " "été configuré avec B, vu que le but originel de " "cet appel système était pour la fonctionnalité de gel des applications " "(checkpoint/restore) dans l'espace utilisateur (CRIU) (l'alternative à cet " "appel système aurait consisté à présenter les informations pertinentes " "concernant le processus à l’aide du système de fichier B(5) ; cette " "solution n'a pas été jugée satisfaisante pour des raisons de sécurité). " "Depuis Linux 5.12, cet appel système est disponible également si le noyau " "est configuré avec B." #. 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 "" "See B(2) for some background information on the shared resources " "referred to on this page." msgstr "" "Consultez B(2) pour obtenir des informations générales sur les " "ressources partagées dont il est fait mention dans cette page. " #. 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 program below uses B() to test whether pairs of file descriptors " "refer to the same open file description. The program tests different cases " "for the file descriptor pairs, as described in the program output. An " "example run of the program is as follows:" msgstr "" "Le programme ci-dessous utilise B() pour tester si les pairs de " "descripteurs de fichiers renvoient à la même description de fichiers (FD) " "ouverts. Le programme teste différents cas pour les pairs de descripteurs de " "fichiers (FD), comme le décrit sa sortie. Un exemple d'exécution du " "programme suit :" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "$ B<./a.out>\n" "Parent PID is 1144\n" "Parent opened file on FD 3\n" "\\&\n" "PID of child of fork() is 1145\n" "\tCompare duplicate FDs from different processes:\n" "\t\tkcmp(1145, 1144, KCMP_FILE, 3, 3) ==E same\n" "Child opened file on FD 4\n" "\tCompare FDs from distinct open()s in same process:\n" "\t\tkcmp(1145, 1145, KCMP_FILE, 3, 4) ==E different\n" "Child duplicated FD 3 to create FD 5\n" "\tCompare duplicated FDs in same process:\n" "\t\tkcmp(1145, 1145, KCMP_FILE, 3, 5) ==E same\n" msgstr "" "$ B<./a.out>\n" "Le PID parent est 1144\n" "Fichier ouvert parent sur FD 3\n" "\\&\n" "Le PID de l'enfant de fork() est 1145\n" "\tComparaison des FDs dupliqués issus de processus différents :\n" "\t\tkcmp(1145, 1144, KCMP_FILE, 3, 3) ==E same\n" "Fichier enfant ouvert sur FD 4\n" "\tComparaison des FDs issus d'open()s distincts dans le même processus :\n" "\t\tkcmp(1145, 1145, KCMP_FILE, 3, 4) ==E different\n" "Le FD 3 dupliqué enfant pour créer le FD 5\n" "\tComparaison des FDs dupliqués dans le même processus :\n" "\t\tkcmp(1145, 1145, KCMP_FILE, 3, 5) ==E same\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" msgstr "Source du programme" #. type: Plain text #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "" "#define _GNU_SOURCE\n" "#include Eerr.hE\n" "#include Efcntl.hE\n" "#include Elinux/kcmp.hE\n" "#include Estdint.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/syscall.hE\n" "#include Esys/types.hE\n" "#include Esys/wait.hE\n" "#include Eunistd.hE\n" "\\&\n" "static int\n" "kcmp(pid_t pid1, pid_t pid2, int type,\n" " unsigned long idx1, unsigned long idx2)\n" "{\n" " return syscall(SYS_kcmp, pid1, pid2, type, idx1, idx2);\n" "}\n" "\\&\n" "static void\n" "test_kcmp(char *msg, pid_t pid1, pid_t pid2, int fd_a, int fd_b)\n" "{\n" " printf(\"\\et%s\\en\", msg);\n" " printf(\"\\et\\etkcmp(%jd, %jd, KCMP_FILE, %d, %d) ==E %s\\en\",\n" " (intmax_t) pid1, (intmax_t) pid2, fd_a, fd_b,\n" " (kcmp(pid1, pid2, KCMP_FILE, fd_a, fd_b) == 0) ?\n" " \"same\" : \"different\");\n" "}\n" "\\&\n" "int\n" "main(void)\n" "{\n" " int fd1, fd2, fd3;\n" " static const char pathname[] = \"/tmp/kcmp.test\";\n" "\\&\n" " fd1 = open(pathname, O_CREAT | O_RDWR, 0600);\n" " if (fd1 == -1)\n" " err(EXIT_FAILURE, \"open\");\n" "\\&\n" " printf(\"Parent PID is %jd\\en\", (intmax_t) getpid());\n" " printf(\"Parent opened file on FD %d\\en\\en\", fd1);\n" "\\&\n" " switch (fork()) {\n" " case -1:\n" " err(EXIT_FAILURE, \"fork\");\n" "\\&\n" " case 0:\n" " printf(\"PID of child of fork() is %jd\\en\", (intmax_t) getpid());\n" "\\&\n" " test_kcmp(\"Compare duplicate FDs from different processes:\",\n" " getpid(), getppid(), fd1, fd1);\n" "\\&\n" " fd2 = open(pathname, O_CREAT | O_RDWR, 0600);\n" " if (fd2 == -1)\n" " err(EXIT_FAILURE, \"open\");\n" " printf(\"Child opened file on FD %d\\en\", fd2);\n" "\\&\n" " test_kcmp(\"Compare FDs from distinct open()s in same process:\",\n" " getpid(), getpid(), fd1, fd2);\n" "\\&\n" " fd3 = dup(fd1);\n" " if (fd3 == -1)\n" " err(EXIT_FAILURE, \"dup\");\n" " printf(\"Child duplicated FD %d to create FD %d\\en\", fd1, fd3);\n" "\\&\n" " test_kcmp(\"Compare duplicated FDs in same process:\",\n" " getpid(), getpid(), fd1, fd3);\n" " break;\n" "\\&\n" " default:\n" " wait(NULL);\n" " }\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" "#define _GNU_SOURCE\n" "#include Eerr.hE\n" "#include Efcntl.hE\n" "#include Elinux/kcmp.hE\n" "#include Estdint.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/syscall.hE\n" "#include Esys/types.hE\n" "#include Esys/wait.hE\n" "#include Eunistd.hE\n" "\\&\n" "static int\n" "kcmp(pid_t pid1, pid_t pid2, int type,\n" " unsigned long idx1, unsigned long idx2)\n" "{\n" " return syscall(SYS_kcmp, pid1, pid2, type, idx1, idx2);\n" "}\n" "\\&\n" "static void\n" "test_kcmp(char *msg, pid_t pid1, pid_t pid2, int fd_a, int fd_b)\n" "{\n" " printf(\"\\et%s\\en\", msg);\n" " printf(\"\\et\\etkcmp(%jd, %jd, KCMP_FILE, %d, %d) ==E %s\\en\",\n" " (intmax_t) pid1, (intmax_t) pid2, fd_a, fd_b,\n" " (kcmp(pid1, pid2, KCMP_FILE, fd_a, fd_b) == 0) ?\n" " \"same\" : \"different\");\n" "}\n" "\\&\n" "int\n" "main(void)\n" "{\n" " int fd1, fd2, fd3;\n" " static const char pathname[] = \"/tmp/kcmp.test\";\n" "\\&\n" " fd1 = open(pathname, O_CREAT | O_RDWR, 0600);\n" " if (fd1 == -1)\n" " err(EXIT_FAILURE, \"open\");\n" "\\&\n" " printf(\"Le PID parent est %jd\\en\", (intmax_t) getpid());\n" " printf(\"Fichier ouvert parent sur le FD %d\\en\\en\", fd1);\n" "\\&\n" " switch (fork()) {\n" " case -1:\n" " err(EXIT_FAILURE, \"fork\");\n" "\\&\n" " case 0:\n" " printf(\"Le PID de l'enfant de fork() est %jd\\en\", (intmax_t) getpid());\n" "\\&\n" " test_kcmp(\"Comparer les FDs dupliqués issus de processus différents :\",\n" " getpid(), getppid(), fd1, fd1);\n" "\\&\n" " fd2 = open(pathname, O_CREAT | O_RDWR, 0600);\n" " if (fd2 == -1)\n" " err(EXIT_FAILURE, \"open\");\n" " printf(\"L'enfant a ouvert le fichier sur le FD %d\\en\", fd2);\n" "\\&\n" " test_kcmp(\"Comparer des FDs issus des mêmes processus open()s :\",\n" " getpid(), getpid(), fd1, fd2);\n" "\\&\n" " fd3 = dup(fd1);\n" " if (fd3 == -1)\n" " err(EXIT_FAILURE, \"dup\");\n" " printf(\"L'enfant a dupliqué le FD %d pour créer le FD %d\\en\", fd1, fd3);\n" "\\&\n" " test_kcmp(\"Comparaison de FDs dupliqués dans le même processus :\",\n" " getpid(), getpid(), fd1, fd3);\n" " break;\n" "\\&\n" " default:\n" " wait(NULL);\n" " }\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" #. SRC END #. 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)" msgstr "B(2), B(2)" #. type: TH #: debian-bookworm #, no-wrap msgid "2022-10-30" msgstr "30 octobre 2022" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "Pages du manuel de Linux 6.03" #. type: SH #: debian-bookworm #, no-wrap msgid "VERSIONS" msgstr "VERSIONS" #. type: Plain text #: debian-bookworm msgid "The B() system call first appeared in Linux 3.5." msgstr "" "L'appel système B() a fait son apparition dans la version 3.5 de Linux." #. type: Plain text #: debian-bookworm msgid "" "B() is Linux-specific and should not be used in programs intended to " "be portable." msgstr "" "B() est spécifique à Linux et ne doit pas être utilisé dans des " "programmes conçus pour être portables." #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "$ B<./a.out>\n" "Parent PID is 1144\n" "Parent opened file on FD 3\n" msgstr "" "$ B<./a.out>\n" "Le PID parent est 1144\n" "Fichier ouvert parent sur FD 3\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "PID of child of fork() is 1145\n" "\tCompare duplicate FDs from different processes:\n" "\t\tkcmp(1145, 1144, KCMP_FILE, 3, 3) ==E same\n" "Child opened file on FD 4\n" "\tCompare FDs from distinct open()s in same process:\n" "\t\tkcmp(1145, 1145, KCMP_FILE, 3, 4) ==E different\n" "Child duplicated FD 3 to create FD 5\n" "\tCompare duplicated FDs in same process:\n" "\t\tkcmp(1145, 1145, KCMP_FILE, 3, 5) ==E same\n" msgstr "" "Le PID de l'enfant de fork() est 1145\n" "\tComparaison des FDs dupliqués issus de processus différents :\n" "\t\tkcmp(1145, 1144, KCMP_FILE, 3, 3) ==E same\n" "Fichier enfant ouvert sur FD 4\n" "\tComparaison des FDs issus d'open()s distincts dans le même processus :\n" "\t\tkcmp(1145, 1145, KCMP_FILE, 3, 4) ==E different\n" "Le FD 3 dupliqué enfant pour créer le FD 5\n" "\tComparaison des FDs dupliqués dans le même processus :\n" "\t\tkcmp(1145, 1145, KCMP_FILE, 3, 5) ==E same\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#define _GNU_SOURCE\n" "#include Eerr.hE\n" "#include Efcntl.hE\n" "#include Elinux/kcmp.hE\n" "#include Estdint.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/syscall.hE\n" "#include Esys/wait.hE\n" "#include Eunistd.hE\n" msgstr "" "#define _GNU_SOURCE\n" "#include Eerr.hE\n" "#include Efcntl.hE\n" "#include Elinux/kcmp.hE\n" "#include Estdint.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/syscall.hE\n" "#include Esys/wait.hE\n" "#include Eunistd.hE\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "static int\n" "kcmp(pid_t pid1, pid_t pid2, int type,\n" " unsigned long idx1, unsigned long idx2)\n" "{\n" " return syscall(SYS_kcmp, pid1, pid2, type, idx1, idx2);\n" "}\n" msgstr "" "static int\n" "kcmp(pid_t pid1, pid_t pid2, int type,\n" " unsigned long idx1, unsigned long idx2)\n" "{\n" " return syscall(SYS_kcmp, pid1, pid2, type, idx1, idx2);\n" "}\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "static void\n" "test_kcmp(char *msg, pid_t pid1, pid_t pid2, int fd_a, int fd_b)\n" "{\n" " printf(\"\\et%s\\en\", msg);\n" " printf(\"\\et\\etkcmp(%jd, %jd, KCMP_FILE, %d, %d) ==E %s\\en\",\n" " (intmax_t) pid1, (intmax_t) pid2, fd_a, fd_b,\n" " (kcmp(pid1, pid2, KCMP_FILE, fd_a, fd_b) == 0) ?\n" " \"same\" : \"different\");\n" "}\n" msgstr "" "static void\n" "test_kcmp(char *msg, pid_t pid1, pid_t pid2, int fd_a, int fd_b)\n" "{\n" " printf(\"\\et%s\\en\", msg);\n" " printf(\"\\et\\etkcmp(%jd, %jd, KCMP_FILE, %d, %d) ==E %s\\en\",\n" " (intmax_t) pid1, (intmax_t) pid2, fd_a, fd_b,\n" " (kcmp(pid1, pid2, KCMP_FILE, fd_a, fd_b) == 0) ?\n" " \"same\" : \"different\");\n" "}\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(void)\n" "{\n" " int fd1, fd2, fd3;\n" " static const char pathname[] = \"/tmp/kcmp.test\";\n" msgstr "" "int\n" "main(void)\n" "{\n" " int fd1, fd2, fd3;\n" " static const char pathname[] = \"/tmp/kcmp.test\";\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " fd1 = open(pathname, O_CREAT | O_RDWR, 0600);\n" " if (fd1 == -1)\n" " err(EXIT_FAILURE, \"open\");\n" msgstr "" " fd1 = open(pathname, O_CREAT | O_RDWR, 0600);\n" " if (fd1 == -1)\n" " err(EXIT_FAILURE, \"open\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " printf(\"Parent PID is %jd\\en\", (intmax_t) getpid());\n" " printf(\"Parent opened file on FD %d\\en\\en\", fd1);\n" msgstr "" " printf(\"Le PID parent est %jd\\en\", (intmax_t) getpid());\n" " printf(\"Fichier ouvert parent sur le FD %d\\en\\en\", fd1);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " switch (fork()) {\n" " case -1:\n" " err(EXIT_FAILURE, \"fork\");\n" msgstr "" " switch (fork()) {\n" " case -1:\n" " err(EXIT_FAILURE, \"fork\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " case 0:\n" " printf(\"PID of child of fork() is %jd\\en\", (intmax_t) getpid());\n" msgstr "" " case 0:\n" " printf(\"Le PID de l'enfant de fork() est %jd\\en\", (intmax_t) getpid());\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " test_kcmp(\"Compare duplicate FDs from different processes:\",\n" " getpid(), getppid(), fd1, fd1);\n" msgstr "" " test_kcmp(\"Comparer les FDs dupliqués issus de processus différents :\",\n" " getpid(), getppid(), fd1, fd1);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " fd2 = open(pathname, O_CREAT | O_RDWR, 0600);\n" " if (fd2 == -1)\n" " err(EXIT_FAILURE, \"open\");\n" " printf(\"Child opened file on FD %d\\en\", fd2);\n" msgstr "" " fd2 = open(pathname, O_CREAT | O_RDWR, 0600);\n" " if (fd2 == -1)\n" " err(EXIT_FAILURE, \"open\");\n" " printf(\"L'enfant a ouvert le fichier sur le FD %d\\en\", fd2);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " test_kcmp(\"Compare FDs from distinct open()s in same process:\",\n" " getpid(), getpid(), fd1, fd2);\n" msgstr "" " test_kcmp(\"Comparer des FDs issus des mêmes processus open()s :\",\n" " getpid(), getpid(), fd1, fd2);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " fd3 = dup(fd1);\n" " if (fd3 == -1)\n" " err(EXIT_FAILURE, \"dup\");\n" " printf(\"Child duplicated FD %d to create FD %d\\en\", fd1, fd3);\n" msgstr "" " fd3 = dup(fd1);\n" " if (fd3 == -1)\n" " err(EXIT_FAILURE, \"dup\");\n" " printf(\"L'enfant a dupliqué le FD %d pour créer le FD %d\\en\", fd1, fd3);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " test_kcmp(\"Compare duplicated FDs in same process:\",\n" " getpid(), getpid(), fd1, fd3);\n" " break;\n" msgstr "" " test_kcmp(\"Comparaison de FDs dupliqués dans le même processus :\",\n" " getpid(), getpid(), fd1, fd3);\n" " break;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " default:\n" " wait(NULL);\n" " }\n" msgstr "" " default:\n" " wait(NULL);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" " exit(EXIT_SUCCESS);\n" "}\n" #. type: TH #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "31 octobre 2023" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "Pages du manuel de Linux 6.06" #. type: Plain text #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "" "#define _GNU_SOURCE\n" "#include Eerr.hE\n" "#include Efcntl.hE\n" "#include Elinux/kcmp.hE\n" "#include Estdint.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/syscall.hE\n" "#include Esys/wait.hE\n" "#include Eunistd.hE\n" "\\&\n" "static int\n" "kcmp(pid_t pid1, pid_t pid2, int type,\n" " unsigned long idx1, unsigned long idx2)\n" "{\n" " return syscall(SYS_kcmp, pid1, pid2, type, idx1, idx2);\n" "}\n" "\\&\n" "static void\n" "test_kcmp(char *msg, pid_t pid1, pid_t pid2, int fd_a, int fd_b)\n" "{\n" " printf(\"\\et%s\\en\", msg);\n" " printf(\"\\et\\etkcmp(%jd, %jd, KCMP_FILE, %d, %d) ==E %s\\en\",\n" " (intmax_t) pid1, (intmax_t) pid2, fd_a, fd_b,\n" " (kcmp(pid1, pid2, KCMP_FILE, fd_a, fd_b) == 0) ?\n" " \"same\" : \"different\");\n" "}\n" "\\&\n" "int\n" "main(void)\n" "{\n" " int fd1, fd2, fd3;\n" " static const char pathname[] = \"/tmp/kcmp.test\";\n" "\\&\n" " fd1 = open(pathname, O_CREAT | O_RDWR, 0600);\n" " if (fd1 == -1)\n" " err(EXIT_FAILURE, \"open\");\n" "\\&\n" " printf(\"Parent PID is %jd\\en\", (intmax_t) getpid());\n" " printf(\"Parent opened file on FD %d\\en\\en\", fd1);\n" "\\&\n" " switch (fork()) {\n" " case -1:\n" " err(EXIT_FAILURE, \"fork\");\n" "\\&\n" " case 0:\n" " printf(\"PID of child of fork() is %jd\\en\", (intmax_t) getpid());\n" "\\&\n" " test_kcmp(\"Compare duplicate FDs from different processes:\",\n" " getpid(), getppid(), fd1, fd1);\n" "\\&\n" " fd2 = open(pathname, O_CREAT | O_RDWR, 0600);\n" " if (fd2 == -1)\n" " err(EXIT_FAILURE, \"open\");\n" " printf(\"Child opened file on FD %d\\en\", fd2);\n" "\\&\n" " test_kcmp(\"Compare FDs from distinct open()s in same process:\",\n" " getpid(), getpid(), fd1, fd2);\n" "\\&\n" " fd3 = dup(fd1);\n" " if (fd3 == -1)\n" " err(EXIT_FAILURE, \"dup\");\n" " printf(\"Child duplicated FD %d to create FD %d\\en\", fd1, fd3);\n" "\\&\n" " test_kcmp(\"Compare duplicated FDs in same process:\",\n" " getpid(), getpid(), fd1, fd3);\n" " break;\n" "\\&\n" " default:\n" " wait(NULL);\n" " }\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" "#define _GNU_SOURCE\n" "#include Eerr.hE\n" "#include Efcntl.hE\n" "#include Elinux/kcmp.hE\n" "#include Estdint.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/syscall.hE\n" "#include Esys/wait.hE\n" "#include Eunistd.hE\n" "\\&\n" "static int\n" "kcmp(pid_t pid1, pid_t pid2, int type,\n" " unsigned long idx1, unsigned long idx2)\n" "{\n" " return syscall(SYS_kcmp, pid1, pid2, type, idx1, idx2);\n" "}\n" "\\&\n" "static void\n" "test_kcmp(char *msg, pid_t pid1, pid_t pid2, int fd_a, int fd_b)\n" "{\n" " printf(\"\\et%s\\en\", msg);\n" " printf(\"\\et\\etkcmp(%jd, %jd, KCMP_FILE, %d, %d) ==E %s\\en\",\n" " (intmax_t) pid1, (intmax_t) pid2, fd_a, fd_b,\n" " (kcmp(pid1, pid2, KCMP_FILE, fd_a, fd_b) == 0) ?\n" " \"same\" : \"different\");\n" "}\n" "\\&\n" "int\n" "main(void)\n" "{\n" " int fd1, fd2, fd3;\n" " static const char pathname[] = \"/tmp/kcmp.test\";\n" "\\&\n" " fd1 = open(pathname, O_CREAT | O_RDWR, 0600);\n" " if (fd1 == -1)\n" " err(EXIT_FAILURE, \"open\");\n" "\\&\n" " printf(\"Le PID parent est %jd\\en\", (intmax_t) getpid());\n" " printf(\"Fichier ouvert parent sur le FD %d\\en\\en\", fd1);\n" "\\&\n" " switch (fork()) {\n" " case -1:\n" " err(EXIT_FAILURE, \"fork\");\n" "\\&\n" " case 0:\n" " printf(\"Le PID de l'enfant de fork() est %jd\\en\", (intmax_t) getpid());\n" "\\&\n" " test_kcmp(\"Comparer les FDs dupliqués issus de processus différents :\",\n" " getpid(), getppid(), fd1, fd1);\n" "\\&\n" " fd2 = open(pathname, O_CREAT | O_RDWR, 0600);\n" " if (fd2 == -1)\n" " err(EXIT_FAILURE, \"open\");\n" " printf(\"L'enfant a ouvert le fichier sur le FD %d\\en\", fd2);\n" "\\&\n" " test_kcmp(\"Comparer des FDs issus des mêmes processus open()s :\",\n" " getpid(), getpid(), fd1, fd2);\n" "\\&\n" " fd3 = dup(fd1);\n" " if (fd3 == -1)\n" " err(EXIT_FAILURE, \"dup\");\n" " printf(\"L'enfant a dupliqué le FD %d pour créer le FD %d\\en\", fd1, fd3);\n" "\\&\n" " test_kcmp(\"Comparaison de FDs dupliqués dans le même processus :\",\n" " getpid(), getpid(), fd1, fd3);\n" " break;\n" "\\&\n" " default:\n" " wait(NULL);\n" " }\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "Pages du manuel de Linux 6.7" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "2023-03-30" msgstr "30 mars 2023" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "Pages du manuel de Linux 6.04" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr "Pages du manuel de Linux (non publiées)"