EXIT(3) | Library Functions Manual | EXIT(3)

# NAME

`exit` — perform normal program termination

# SYNOPSIS

`#include <stdlib.h>`

void
`exit`(int status);

# DESCRIPTION

The `exit`() function terminates a process.

Before termination it performs the following functions in the order listed:

1. Call the functions registered with the atexit(3) function, in the reverse order of their registration.
2. Flush and close all open streams.
3. Unlink all files created with the tmpfile(3) function.

Following this, `exit`() calls _exit(2). Note that typically _exit(2) only passes the lower 8 bits of status on to the parent, thus negative values have less meaning.

# RETURN VALUES

The `exit`() function never returns.

# SEE ALSO

_exit(2), atexit(3), fflush(3), intro(3), sysexits(3), tmpfile(3)

# STANDARDS

The `exit`() function conforms to.

# HISTORY

An `exit`() function first appeared as a system call in Version 1 AT&T UNIX. It has accepted the status argument since Version 2 AT&T UNIX. In Version 7 AT&T UNIX, the bare system call was renamed to _exit(2).

June 3, 2025 | Debian