_Exit
Perform normal program termination
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 reference:atexit function, in the reverse order of their registration.
- Flush all open output streams.
- Close all open streams.
- Unlink all files created with the reference:tmpfile function.
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 reference: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; }