GETPIDSection: Linux Programmer's Manual (2)
Index | Return to Main Contents
NAMEgetpid, getppid - get process identification
DESCRIPTIONgetpid() returns the process ID of the calling process. (This is often used by routines that generate unique temporary filenames.)
ERRORSThese functions are always successful.
CONFORMING TOPOSIX.1-2001, POSIX.1-2008, 4.3BSD, SVr4.
NOTESIf the caller's parent is in a different PID namespace (see pid_namespaces(7)), getppid() returns 0.
C library/kernel differencesSince glibc version 2.3.4, the glibc wrapper function for getpid() caches PIDs, so as to avoid additional system calls when a process calls getpid() repeatedly. Normally this caching is invisible, but its correct operation relies on support in the wrapper functions for fork(2), vfork(2), and clone(2): if an application bypasses the glibc wrappers for these system calls by using syscall(2), then a call to getpid() in the child will return the wrong value (to be precise: it will return the PID of the parent process). See also clone(2) for discussion of a case where getpid() may return the wrong value even when invoking clone(2) via the glibc wrapper function.
SEE ALSOclone(2), fork(2), kill(2), exec(3), mkstemp(3), tempnam(3), tmpfile(3), tmpnam(3), credentials(7), pid_namespaces(7)
COLOPHONThis page is part of release 4.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.
Return to Main Contents