exit(2) UNIX System V exit(2)
NAME
exit, exit - terminate process
SYNOPSIS
#include <stdlib.h>
void exit(int status);
#include <unistd.h>
void exit(int status);
DESCRIPTION
exit terminates the calling process with the following consequences:
All of the file descriptors, directory streams and message
catalogue descriptors open in the calling process are closed.
A SIGCHLD signal is sent to the calling process's parent process.
If the parent process of the calling process has not specified the
SANOCLDWAIT flag [see sigaction(2)], the calling process is
transformed into a ``zombie process.'' A zombie process is a
process that only occupies a slot in the process table. It has no
other space allocated either in user or kernel space. The process
table slot that it occupies is partially overlaid with time
accounting information [see <sys/proc.h>] to be used by the times
system call.
The parent process ID of all of the calling process's existing
child processes and zombie processes is set to 1. This means the
initialization process [see intro(2)] inherits each of these
processes.
Each attached shared memory segment is detached and the value of
shmnattach in the data structure associated with its shared memory
identifier is decremented by 1.
For each semaphore for which the calling process has set a semadj
value [see semop(2)], that semadj value is added to the semval of
the specified semaphore.
If the process has a process, text, or data lock, an unlock is
performed [see plock(2)].
An accounting record is written on the accounting file if the
system's accounting routine is enabled [see acct(2)].
If the process is a controlling process, SIGHUP is sent to the
foreground process group of its controlling terminal and its
controlling terminal is deallocated.
10/89 Page 1
exit(2) UNIX System V exit(2)
If the calling process has any stopped children whose process group
will be orphaned when the calling process exits, or if the calling
process is a member of a process group that will be orphaned when
the calling process exits, that process group will be sent SIGHUP
and SIGCONT signals.
The C function exit(3C) calls any functions registered through the atexit
function in the reverse order of their registration. The function exit
circumvents all such functions and cleanup.
The symbols EXITSUCCESS and EXITFAILURE are defined in stdlib.h and may
be used as the value of status to indicate successful or unsuccessful
termination, respectively.
SEE ALSO
acct(2), intro(2), plock(2), semop(2), sigaction(2), signal(2), times(2),
wait(2), atexit(3C).
NOTES
See signal(2) NOTES.
Page 2 10/89