NAME
_exit —
terminate the calling
process
SYNOPSIS
#include
<unistd.h>
void
_exit(int status);
DESCRIPTION
The
_exit()
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
SIGCHLDsignal, 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 these processes.
- 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
SIGHUPsignal and theSIGCONTsignal are sent to all members of the newly-orphaned process group. - If the process is a controlling process (see
intro(2)),
the
SIGHUPsignal 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().
RETURN VALUE
_exit() can never return.
SEE ALSO
STANDARDS
The _exit function is defined by
IEEE Std 1003.1-1988 (“POSIX.1”).