I have forgotten
my Password

Or login with:

  • Facebookhttp://facebook.com/
  • Googlehttps://www.google.com/accounts/o8/id
  • Yahoohttps://me.yahoo.com


Perform normal program termination
+ View other versions (4)


#include <stdlib.h>
void exit (int status)
void _Exit (int status)


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.

The _Exit function terminates without calling the functions registered with the reference: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 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) 
  // this never gets to execute
  a = 1;

Return Values

The exit and _Exit functions never return.