dwww Home | Manual pages | Find package

getpid(2)                     System Calls Manual                    getpid(2)

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  sys-
       tè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  enve-
       loppe  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  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.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.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org>,  David  Prévot  <david@tilapin.org>,  Cédric Boutillier <ce-
       dric.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⟩.

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

Generated by dwww version 1.15 on Sat Jun 29 01:49:03 CEST 2024.