jammy (2) getppid.2.gz

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