getppid

GETPID(2)                  Manuel du programmeur Linux                 GETPID(2)



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




Linux                            1 novembre 2020                       GETPID(2)