_exit — terminate
the calling process
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).
- 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)) inherits each of
- 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)), and if any member of the
orphaned group is stopped, the
SIGHUP signal and
SIGCONT signal are sent to all members of the
newly-orphaned process group.
- If the process is a controlling process (see
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), which flushes buffers, closes
streams, unlinks temporary files, etc., before calling
_exit() can never return.
_exit function is defined by
IEEE Std 1003.1-1988 (“POSIX.1”).