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

# NAME

`exit` —
perform normal program termination

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

`#include <stdlib.h>`

void
`exit`(int status);

# DESCRIPTION

`exit`() terminates a process. The status values `EXIT_SUCCESS` and `EXIT_FAILURE` can be used to indicate successful and unsuccessful termination, respectively.

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 all open output streams.
3. Close all open streams.
4. Unlink all files created with the tmpfile(3) function.

Following this, `exit`() calls _exit(2).

# RESTRICTIONS

Standard C guarantees only that the values zero, `EXIT_SUCCESS`, and `EXIT_FAILURE` produce meaningful results. POSIX extends this to guarantee that the least significant 8 bits of status are preserved and returned to the parent via wait(2). Values outside the supported range 0-255 are bitwise-truncated; therefore, negative values should not be used.

# RETURN VALUES

The `exit`() function never returns.

# SEE ALSO

_exit(2), at_quick_exit(3), atexit(3), intro(3), quick_exit(3), tmpfile(3)

# STANDARDS

The `exit`() function conforms to ANSI X3.159-1989 (“ANSI C89”).

# HISTORY

The `exit`() function appeared in Version 1 AT&T UNIX.

September 1, 2019 | NetBSD 9.3