| NAME | SYNOPSIS | DESCRIPTION | ERRORS | CONFORMING TO | NOTES | SEE ALSO | COLOPHON | The Linux Programming Interface |
GETPID(2) Linux Programmer's Manual GETPID(2)
getpid, getppid - get process identification
#include <sys/types.h>
#include <unistd.h>
pid_t getpid(void);
pid_t getppid(void);
getpid() returns the process ID of the calling process. (This is often used
by routines that generate unique temporary filenames.)
getppid() returns the process ID of the parent of the calling process.
These functions are always successful.
POSIX.1-2001, 4.3BSD, SVr4.
Since 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.
clone(2), fork(2), kill(2), exec(3), mkstemp(3), tempnam(3), tmpfile(3),
tmpnam(3), credentials(7)
This page is part of release 3.32 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can be found
at http://www.kernel.org/doc/man-pages/.
Linux 2008-09-23 GETPID(2)
HTML rendering created 2010-12-03 by Michael Kerrisk, author of The Linux Programming Interface