getpid(2) System Calls Manual getpid(2) NOM getpid, getppid - Obtenir l'identifiant d'un processus BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include pid_t getpid(void); pid_t getppid(void); DESCRIPTION getpid() renvoie l'identifiant du processus appelant (cela est souvent utilise par des routines qui generent 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 cree ce processus en utilisant fork(), soit, si ce processus s'est deja termine, de l'ID du processus auquel il a ete reaffilie (init(1) ou un processus << subreaper >> defini avec l'operation PR_SET_CHILD_SUBREAPER de prctl(2)). ERREURS Ces fonctions reussissent toujours. VERSIONS Sur Alpha, au lieu d'une paire d'appels systeme 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 gerent cela de maniere transparente. Voir syscall(2) pour des details sur les tableaux de registre. STANDARDS POSIX.1-2008. HISTORIQUE POSIX.1-2001, 4.3BSD, SVr4. Differences entre bibliotheque C et noyau De la glibc 2.3.4 jusqu'a la glibc 2.24 incluse, la fonction enveloppe de la glibc pour getpid() faisait un cache des PID, de facon a eviter des appels systeme supplementaires quand un processus appelle getpid() de facon repetee. Normalement, cette mise en cache n'etait 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 systeme en appelant syscall(2), alors un appel a getpid() dans l'enfant renvoyait la mauvaise valeur (pour etre precis : il renvoyait le PID du processus parent). En outre, il y avait des cas ou getpid() renvoyait la mauvaise valeur meme 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 complexite du code de mise en cache etait devenue, au fil des annees, la source de quelques bogues dans la glibc. Du fait des problemes susmentionnes, depuis la glibc version 2.25, le cache du PID est retire : les appels a getpid() appellent toujours le vrai appel systeme au lieu de renvoyer une valeur mise en cache. NOTES Si le parent de l'appelant est dans un espace de noms de PID different (voir pid_namespaces(7)), getppid() renvoie 0. Du point de vue du noyau, le PID (qui est partage 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 details, 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 francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Cedric Boutillier , Frederic Hantrais et Jean-Philippe MENGUAL Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.9.1 2 mai 2024 getpid(2)