The
exit ();
and
_Exit ();
functions terminate a process.
Before termination,
exit ();
performs the following functions in the order listed:
Call the functions registered with the
atexit(3)
function, in the reverse order of their registration.
Flush all open output streams.
Close all open streams.
Unlink all files created with the
tmpfile(3)
function.
The
_Exit ();
function terminates without calling the functions registered with the
atexit(3)
function, and may or may not perform the other actions listed.
Both functions make the low-order eight bits of the
Fa status
argument available to a parent process which has called a
wait(2)Ns-family
function.
The C Standard
(St -isoC-99
)
defines the values
0EXIT_SUCCESS
and
EXIT_FAILURE
as possible values of
Fa status .
Cooperating processes may use other values;
in a program which might be called by a mail transfer agent, the
values described in
sysexits(3)
may be used to provide more information to the parent process.
Note that
exit ();
does nothing to prevent bottomless recursion should a function registered
using
atexit(3)
itself call
exit (.);
Such functions must call
_Exit ();
instead (although this has other effects as well which may not be desired).
RETURN VALUES
The
exit ();
and
_Exit ();
functions
never return.