Provided by: manpages-fr-dev_4.13-4_all bug

NOM

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

SYNOPSIS

       #include <sys/types.h>
       #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.

CONFORMITÉ

       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 version 2.3.4 jusqu'à la version 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)

COLOPHON

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

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.

Linux                                            1 novembre 2020                                       GETPID(2)