---
name: "getpid"
section: "2freebsd"
platform: "linux"
package: "freebsd-manpages"
version: "12.2-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/getpid/2freebsd"
---

# getpid(2freebsd)

get parent or calling process identification

## NAME

**getpid**, **getppid** – get parent or calling process identification

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<unistd.h\>**

*pid\_t*\

**getpid**(*void*);

*pid\_t*\

**getppid**(*void*);

## DESCRIPTION

The **getpid**() system call returns the process ID of the calling process. Though the ID is guaranteed to be unique, it should *NOT* be used for constructing temporary file names, for security reasons; see [mkstemp(3)](/mkstemp/3.md) instead.

The **getppid**() system call returns the process ID of the parent of the calling process.

## ERRORS

The **getpid**() and **getppid**() system calls are always successful, and no return value is reserved to indicate an error.

## SEE ALSO

[fork(2)](/fork/2.md), [getpgrp(2)](/getpgrp/2.md), [kill(2)](/kill/2.md), [setpgid(2)](/setpgid/2.md), [setsid(2)](/setsid/2.md), [exec(3)](/exec/3.md)

## STANDARDS

The **getpid**() and **getppid**() system calls are expected to conform to ISO/IEC 9945-1:1990 (“POSIX.1”).

## HISTORY

The **getpid**() function appeared in Version 7 AT&T UNIX.
