Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       kcmp - compare deux processus afin de déterminer s'ils partagent des ressources du noyau

SYNOPSIS

       #include <linux/kcmp.h>

       int kcmp(pid_t pid1, pid_t pid2, int type,
                unsigned long idx1, unsigned long idx2);

       Note :  Il  n'existe  pas  de fonction d'encapsulation dans glibc pour cet appel système ;
       consultez NOTES.

DESCRIPTION

       L'appel système  kcmp() peut être utilisé pour vérifier si deux processus  identifiés  par
       pid1  et  pid2  partagent des ressources du noyau, telles que de la mémoire virtuelle, des
       descripteurs de fichiers, etc.

       L'argument nstype indique pour quelle ressource une comparaison doit être effectuée  entre
       les deux processus. Il peut prendre l'une des valeurs suivantes :

       KCMP_FILE
              Vérifie  si  un  descripteur  de  fichier  idx1  utilisé par le processus pid1 fait
              référence à la même description  de  fichier  ouvert  (consultez  open(2))  que  le
              descripteur de fichier idx2 utilisé par le processus pid2.

       KCMP_FILES
              Vérifier  si  le  processus  partage  un  même ensemble de descripteurs de fichiers
              ouverts. Les arguments  idx1 et idx2 ne sont pas pris en compte.

       KCMP_FS
              Vérifie si les processus partagent les même informations relatives  au  système  de
              fichiers (c'est-à-dire le masque de création de fichiers, le répertoire de travail,
              et la racine du système de fichiers). Les arguments idx1 et idx2 ne sont  pas  pris
              en compte.

       KCMP_IO
              Vérifie  si  les processus partagent un contexte E/S. Les arguments idx1 et idx2 ne
              sont pas pris en compte.

       KCMP_SIGHAND
              Vérifie si les processus partagent la même table de disposition  des  signaux.  Les
              arguments idx1 et idx2 ne sont pas pris en compte.

       KCMP_SYSVSEM
              Vérifie  si  les  processus  partagent la même liste d'opérations « undo » pour les
              sémaphores System V. Les arguments idx1 et idx2 ne sont pas pris en compte.

       KCMP_VM
              Vérifie si les processus partagent le même espace d'adressage. Les  arguments  idx1
              et idx2 ne sont pas pris en compte.

       Remarquez  que  kcmp()  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, il  faut  arrêter
       ces  tâches  au  moyen  de  SIGSTOP  (consulter signal(7)) avant de commencer l'examen des
       processus.

VALEUR RENVOYÉE

       La valeur renvoyée par un appel  réussi  à  kcmp()  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).

       Pour mieux comprendre, regardons l'exemple suivant. Supposons  que  v1  and  v2  sont  les
       adresses des ressources concernées, alors la valeur renvoyée sera l'une des suivantes :

           0   v1  est  égal  à  v2 ;  en  d'autres  termes, les deux processus partagent la même
               ressource.

           1   v1 est inférieur à v2.

           2   v1 est supérieur à v2.

           3   v1 n'est pas égal à v2, mais aucune information  concernant  l'ordre  des  nombres
               n'est disponible.

       En cas d'erreur, le retour vaut -1 et errno reçoit une valeur correspondante.

       kcmp() 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.

ERREURS

       EBADF  type est KCMP_FILE et fd1 ou fd2 n'est pas un descripteur de fichier ouvert.

       EINVAL type n'est pas valide.

       EPERM  Permissions insuffisantes pour inspecter les  ressources  du  noyau.  Le  privilège
              CAP_SYS_PTRACE  est  nécessaire  pour  inspecter les processus dont vous n'êtes pas
              propriétaire.

       ESRCH  Au moins l'un des processus pid1 ou pid2 n'existe pas.

VERSIONS

       L'appel système setns() a fait son apparition dans la version 3.5 de Linux.

CONFORMITÉ

       kcmp() est spécifique à Linux et ne doit pas être utilisé dans des programmes conçus  pour
       être portables.

NOTES

       Glibc  ne  fournit  pas  de  fonction  d'encapsulation  pour  cet appel système ; utilisez
       syscall(2) pour l'appeler.

       Cet  appel  système  n'est  disponible  que   si   le   noyau   a   été   configuré   avec
       CONFIG_CHECKPOINT_RESTORE.  Cet appel est utilisé principalement 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  via  le  système  de  fichier  proc(5) ;  cette  solution  n'a  pas  été  jugée
       satisfaisante pour des raisons de sécurité.

       Consultez  clone(2)  pour  obtenir des informations générales sur les ressources partagées
       dont il est fait mention dans cette page.

VOIR AUSSI

       clone(2), unshare(2)

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux.  Une  description
       du  projet  et  des  instructions  pour  signaler  des  anomalies  peuvent être trouvées à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

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

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

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document  en  utilisant  la
       commande « man -L C <section> <page_de_man> ».