Man page - getpid(2)

Packages contains this manual

Available languages:

en fr pl nl ja ru ro de

Manual

getpid

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
ERREURS
VERSIONS
STANDARDS
HISTORIQUE
Différences entre bibliothÚque C et noyau
NOTES
VOIR AUSSI
TRADUCTION

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