.\" -*- coding: UTF-8 -*- .\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getpid 2 "30 maart 2023" "Linux man\-pagina's 6.05.01" .SH NAAM getpid, getppid \- verkrijg proces identiteit .SH BIBLIOTHEEK Standard C bibliotheek (\fIlibc\fP, \fI\-lc\fP) .SH SAMENVATTING .nf \fB#include \fP .PP \fBpid_t getpid(void);\fP \fBpid_t getppid(void);\fP .fi .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 VERSIES 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 "VOLDOET AAN" POSIX.1\-2008. .SH GESCHIEDENIS POSIX.1\-2001, 4.3BSD, SVr4. .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 2.3.4 tot en met glibc 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 meerdere jaren. .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 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. .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). .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) .PP .SH VERTALING De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema , Mario Blättermann en Luc Castermans . .PP 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. .PP Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar .MT debian-l10n-dutch@lists.debian.org .ME .