OpenBSD Handbook Manuals
Search

exit(3)

Canonical URL: /exit.3/

EXIT(3) Library Functions Manual EXIT(3)

exitperform normal program termination

#include <stdlib.h>

void
exit(int status);

The () 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, () 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.

The exit() function never returns.

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

The exit() function conforms to IEEE Std 1003.1-2024 (“POSIX.1”).

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).

OpenBSD 7.8 June 3, 2025 EXIT(3)

Need conceptual guidance? Continue in the OpenBSD Handbook.