---
name: "_exit"
section: "2"
platform: "macos"
package: "xnu"
version: "12377.121.6"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/_exit"
---

# \_exit(2)

terminate the calling process

## NAME

**\_exit** – terminate the calling process

## SYNOPSIS

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

*void*\

**\_exit**(*int status*);

## DESCRIPTION

The **\_exit**() function terminates a process, with the following consequences:

- All of the descriptors that were open in the calling process are closed. This may entail delays; for example, waiting for output to drain. A process in this state may not be killed, as it is already dying.

- If the parent process of the calling process has an outstanding wait call or catches the SIGCHLD signal, it is notified of the calling process's termination; the *status* is set as defined by [wait(2)](/wait/2.md).

- The parent process-ID of all of the calling process's existing child processes are set to 1; the initialization process (see the DEFINITIONS section of [intro(2)](/intro/2.md)) inherits each of these processes.

- If the termination of the process causes any process group to become orphaned (usually because the parents of all members of the group have now exited; see “orphaned process group” in [intro(2)](/intro/2.md)), and if any member of the orphaned group is stopped, the SIGHUP signal and the SIGCONT signal are sent to all members of the newly-orphaned process group.

- If the process is a controlling process (see [intro(2)](/intro/2.md)), the SIGHUP signal is sent to the foreground process group of the controlling terminal. All current access to the controlling terminal is revoked.

Most C programs call the library routine [exit(3)](/exit/3.md), which flushes buffers, closes streams, unlinks temporary files, etc., before calling **\_exit**().

## RETURN VALUE

**\_exit**() can never return.

## SEE ALSO

[fork(2)](/fork/2.md), [sigaction(2)](/sigaction/2.md), [wait(2)](/wait/2.md), [exit(3)](/exit/3.md)

## STANDARDS

The **\_exit** function is defined by IEEE Std 1003.1-1988 (“POSIX.1”).
