Provided by: manpages-fr-dev_4.21.0-2_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 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.

Pages du manuel de Linux 6.03                    22 janvier 2023                                       getpid(2)