.\" -*- coding: UTF-8 -*- .\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH GETPID 2 "1 november 2020" Linux "Linux Programmeurs Handleiding" .SH NAAM getpid, getppid \- verkrijg proces identiteit .SH SAMENVATTING \fB#include \fP .br \fB#include \fP .PP \fBpid_t getpid(void);\fP .br \fBpid_t getppid(void);\fP .SH BESCHRIJVING \fBgetpid\fP() geeft het proces ID terug van het huidige proces. (Dit wordt vaak gebruikt door routines die unieke tijdelijke bestandsnamen maken.) .PP \fBgetppid\fP geeft het proces ID van de ouder van het aanroepende proces terug. Dat zal ofwel het ID van het proces zijn dat het proces aanmaakte door \fBfork\fP(2), of, als dat proces al werd beëindigt, het ID van het proces aan welk ouder\-proces het werd vastgemaakt (ofwel \fBinit\fP(1) of een "subreaper" proces zoals gedefinieerd via de \fBprctl\fP(2) \fBPR_SET_CHILD_SUBREAPER\fP operatie). .SH FOUTEN Deze functies slagen altijd. .SH "VOLDOET AAN" POSIX.1\-2001, POSIX.1\-2008, 4.3BSD, SVr4. .SH OPMERKINGEN Als de ouder van de aanroeper in een andere PID naamgebied zit (zie \fBpid_namespaces\fP(7)), dan geeft \fBgetppid\fP() 0 terug. .PP .\" Vanuit kernel perspectief is de PID (die wordt gedeeld door alle threads in een multi\-threaded proces) ook bekend als een thread groep ID (TGID). Dit in tegenstelling tot de kernel thread ID (TID), die unique is voor elke thread. Voor meer details, zie \fBgettid\fP(2) en de discussie over de \fBCLONE_THREAD\fP vlag in \fBclone\fP(2). .SS "C library/kernel verschillen" .\" The following program demonstrates this "feature": .\" .\" #define _GNU_SOURCE .\" #include .\" #include .\" #include .\" #include .\" #include .\" #include .\" .\" int .\" main(int argc, char *argv[]) .\" { .\" /* The following statement fills the getpid() cache */ .\" .\" printf("parent PID = %ld\n", (intmax_t) getpid()); .\" .\" if (syscall(SYS_fork) == 0) { .\" if (getpid() != syscall(SYS_getpid)) .\" printf("child getpid() mismatch: getpid()=%jd; " .\" "syscall(SYS_getpid)=%ld\n", .\" (intmax_t) getpid(), (long) syscall(SYS_getpid)); .\" exit(EXIT_SUCCESS); .\" } .\" wait(NULL); .\"} Vanaf glibc versie 2.3.4 tot en met versie 2.24, cachte de glibc omwikkel functie voor \fBgetpid\fP() PID´s, met als doel het voorkomen van additionele systeem aanroepen wanneer een proces \fBgetpid\fP() herhaaldelijk zou aanroepen. Normaliter was het caching onzichtbaar maar de correctie werking vertrouwde op ondersteuning in de omwikkel functies voor \fBfork\fP(2), \fBvfork\fP(2), en \fBclone\fP(2): zodra een applicatie de glibc omwikkel functie omzeilde door aanroep van \fBsyscall\fP(2) dan zou de aanroep van \fBgetpid\fP() in het kind de verkeerde waarde teruggegeven hebben (om precies te zijn: die zou de PID van het ouder proces terug geven). Additioneel, waren er gevallen waar \fBgetpid\fP() de verkeerde waarde kon terug geven zelfs bij het aanroepen van \fBclone\fP(2) via de glibc omwikkel functie. (Zie BUGS in \fBclone\fP(2) voor een discussie over zo´n geval). Verder is de complexiteit van de caching code een bron van enkele bugs in glibc geweest gedurende de tijd. .PP .\" commit c579f48edba88380635ab98cb612030e3ed8691e .\" https://sourceware.org/glibc/wiki/Release/2.25#pid_cache_removal .\" FIXME . .\" Review progress of https://bugzilla.redhat.com/show_bug.cgi?id=1469757 Vanwege de voorgenoemde problemen werd vanaf glibc versie 2.25 de PID cache verwijderd: aanroepen van \fBgetpid\fP() roepen ook de daadwerkelijke systeem aanroep aan, in plaats van het teruggeven van een gecachte waarde. .PP Op Alpha wordt voorzien in een enkele \fBgetxpid\fP() systeem aanroep, die het paar PID en ouder PID terug geeft, in plaats van een paar van \fBgeitpid\fP() en \fBgetppid\fP() systeem aanroepen. De glibc \fBgetpid\fP() en \fBgetppid\fP() omwikkel functies handelen dit transparant af. Zie \fBsyscall\fP(2) voor details betreffende de register indeling. .SH "ZIE OOK" \fBclone\fP(2), \fBfork\fP(2), \fBgettid\fP(2), \fBkill\fP(2), \fBexec\fP(3), \fBmkstemp\fP(3), \fBtempnam\fP(3), \fBtmpfile\fP(3), \fBtmpnam\fP(3), \fBcredentials\fP(7), \fBpid_namespaces\fP(7) .SH COLOFON Deze pagina is onderdeel van release 5.10 van het Linux \fIman\-pages\fP\-project. Een beschrijving van het project, informatie over het melden van bugs en de nieuwste versie van deze pagina zijn op \%https://www.kernel.org/doc/man\-pages/ te vinden. .SH VERTALING De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema , Mario Blättermann en Luc Castermans . Deze vertaling is vrije documentatie; lees de .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID. Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar .MT debian-l10n-dutch@lists.debian.org .ME .