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

VERSIONS

       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.

STANDARDS

       POSIX.1-2008.

HISTORIQUE

       POSIX.1-2001, 4.3BSD, SVr4.

   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.

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

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⟩.