EXIT(3)

NAME
exit, _Exit - perform normal program termination

SYNOPSIS
#include <stdlib.h>
void
exit(int status);
void
_Exit(int status);

DESCRIPTION
The exit() and _Exit() functions terminate a process.

Before termination, exit() performs the following operations in the order listed:

1.  Call the functions registered with the atexit(3) function, in the reverse order of their registration.

2.  Flush all open output streams.

3.  Close all open streams.

4.  Unlink all files created with the tmpfile(3) function.

The _Exit() function terminates without calling the functions registered with the atexit(3) function. The OpenBSD implementation of _Exit() does not flush open output streams or unlink files created with the tmpfile(3) function. However, this behavior is implementation-specific.

Lastly, exit() and _Exit() call _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() and _Exit() functions never return.

SEE ALSO
_exit(2), atexit(3), intro(3), sysexits(3), tmpfile(3)

STANDARDS
The exit() and _Exit() functions conform to ansiC-99.

HISTORY
An exit() function first appeared as a system call in AT&T UNIX. In AT&T UNIX, the bare system call was renamed to _exit(2).