cause normal program termination to occur
Synopsis:
#include <stdlib.h>
void _exit( int status );
Description:
The _exit() function causes normal program termination to occur.
The functions registered by the atexit() or onexit() 
function aren't called.
- All open file descriptors and directory streams in the calling process
    are closed.
  
 - If the parent process of the calling process is executing a
    wait() or waitpid(),
    it is notified of the calling process's termination and the low order
    8 bits of status are made available to it.
  
 - If the parent process of the calling process isn't executing a
    wait() or waitpid() function, the exit
    status code is saved, for return to the parent process whenever 
    the parent process executes an appropriate subsequent wait()
    or waitpid().
  
 - Termination of a process doesn't directly terminate its children.
    The sending of a SIGHUP signal, as described below, 
    indirectly terminates children in some circumstances.
    Children of a terminated process are assigned a new parent
    process ID, corresponding to an implementation-defined system process.
    
  
 - If the implementation supports the SIGCHLD signal, a
    SIGCHLD signal is sent to the parent process.
    
  
 - If the process is a controlling process, the SIGHUP
    signal is sent to each process in the foreground process group of
    the controlling terminal belonging to the calling process.
  
 - If the process is a controlling process, the controlling terminal
    associated with the session is disassociated from the session,
    allowing it to be acquired by a new controlling process.
  
 - If the implementation supports job control, and if the exit of the
    process causes a process group to become orphaned, and if any member
    of the newly-orphaned process group is stopped, then a
    SIGHUP signal followed by a SIGCONT
    signal is sent to each process in the newly-orphaned process group.
    
 
These consequences occur on process termination for any reason.
Returns:
The _exit() function doesn't return to its caller.
See also:
abort(),
atexit(),
_bgetcmd()
,
close()
,
exec... functions,
exit(),
getcmd(),
getenv(),
main(),
onexit(),
putenv()
,
sigaction(),
signal()
,
spawn... functions,
system()
,
wait(),
waitpid()
Examples:
#include <stdio.h>
#include <stdlib.h>
void main( int argc, char *argv[] )
  {
    FILE *fp;
    if( argc <= 1 ) {
      fprintf( stderr, "Missing argument\n" );
      exit( EXIT_FAILURE );
    }
    fp = fopen( argv[1], "r" );
    if( fp == NULL ) {
      fprintf( stderr, "Unable to open '%s'\n", argv[1] );
      _exit( EXIT_FAILURE );
    }
    fclose( fp );
    _exit( EXIT_SUCCESS );
  }
Classification:
POSIX 1003.1
Systems:
All (except Netware, DOS/PM)