exit
perform normal program termination
You're viewing an older version of this page (#3480). View the current version.
INTERFACE
#include <stdlib.h>
void exit ( int status )
void _Exit ( int status )
DESCRIPTION
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 function, in the reverse order of their registration.
- Flush all open output streams.
- Close all open streams.
- Unlink all files created with the tmpfile function.
The _Exit function terminates without calling the functions registered with the atexit function, and may or may not perform the other actions listed. Both functions make the low-order eight bits of the status argument available to a parent process which has called a wait-family function.
The C Standard defines the values 0, EXIT_SUCCESS, and EXIT_FAILURE as possible values of status. Cooperating processes may use other values; in a program which might be called by a mail transfer agent, the values described in sysexits 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 itself call exit . Such functions must call _Exit instead (although this has other effects as well which may not be desired).
The code below should always exit with error code 0.
Example 1
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a = 0;
if (a == 1)
exit(1);
else
exit(0);
// this never gets to execute
a = 1;
}RETURN VALUES
The exit and _Exit functions never return.