Provided by: manpages-fr-dev_4.19.0-7_all bug

NOM

       getpid, getppid - Obtenir l'identifiant d'un processus

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <unistd.h>

       pid_t getpid(void);
       pid_t getppid(void);

DESCRIPTION

       getpid()  renvoie  l'identifiant  du  processus appelant (cela est souvent utilisé par des
       routines qui génèrent des noms de fichier temporaire uniques).

       getppid() renvoie l'ID du processus parent de celui appelant. Il s'agira soit de  l'ID  du
       processus  qui  a  créé ce processus en utilisant fork(), soit, si ce processus s'est déjà
       terminé, de l'ID du  processus  auquel  il  a  été  réaffilié  (init(1)  ou  un  processus
       « subreaper » défini avec l'opération PR_SET_CHILD_SUBREAPER de prctl(2)).

ERREURS

       Ces fonctions réussissent toujours.

STANDARDS

       POSIX.1-2001, POSIX.1-2008, 4.3BSD, SVr4.

NOTES

       Si  le  parent  de  l'appelant  est  dans  un  espace  de  noms  de  PID  différent  (voir
       pid_namespaces(7)), getppid() renvoie 0.

       Du point de vue du noyau, le PID (qui est partagé par tous les threads dans  un  processus
       multithreads)  est parfois connu sous l'ID du groupe du thread (TGID). Cela contraste avec
       l'ID du thread (TID) du noyau qui est unique pour chaque thread.  Pour  plus  de  détails,
       voir gettid(2) ou le point sur l'attribut CLONE_THREAD dans clone(2).

   différences entre bibliothèque C et noyau
       De  la  glibc 2.3.4  jusqu'à la glibc 2.24 incluse, la fonction enveloppe de la glibc pour
       getpid() faisait un cache des PID, de façon à éviter des  appels  système  supplémentaires
       quand  un  processus  appelle  getpid() de façon répétée. Normalement, cette mise en cache
       n'était pas visible, mais son fonctionnement correct reposait sur la gestion du cache dans
       les  fonctions  enveloppes  pour  fork(2),  vfork(2)  et  clone(2) : si une application se
       passait des enveloppes de la glibc pour ces appels système en appelant  syscall(2),  alors
       un  appel  à  getpid()  dans  l'enfant renvoyait la mauvaise valeur (pour être précis : il
       renvoyait le PID du processus parent). En outre, il y avait des cas où getpid()  renvoyait
       la mauvaise valeur même avec un appel clone(2) par la fonction enveloppe de la glibc (voir
       BOGUES de clone(2) pour un point sur ce cas). De plus, la complexité du code  de  mise  en
       cache était devenue, au fil des années, la source de quelques bogues dans la glibc.

       Du  fait  des  problèmes  susmentionnés, depuis la glibc version 2.25, le cache du PID est
       retiré : les appels à getpid() appellent  toujours  le  vrai  appel  système  au  lieu  de
       renvoyer une valeur mise en cache.

       Sur  Alpha,  au  lieu  d'une  paire  d'appels système getpid() et getppid(), un seul appel
       getxpid() est fourni, qui renvoie une paire PID et PID parent.  Les  fonctions  enveloppes
       getpid()  et  getppid()  de  la glibc gèrent cela de manière transparente. Voir syscall(2)
       pour des détails sur les tableaux de registre.

VOIR AUSSI

       clone(2),  fork(2),  gettid(2),  kill(2),  exec(3),  mkstemp(3),  tempnam(3),  tmpfile(3),
       tmpnam(3), credentials(7), pid_namespaces(7)

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier  <barbier@debian.org>,  David  Prévot   <david@tilapin.org>,   Cédric   Boutillier
       <cedric.boutillier@gmail.com>,  Frédéric  Hantrais  <fhantrais@gmail.com> et Jean-Philippe
       MENGUAL <jpmengual@debian.org>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.