Terminate the program
#include <stdlib.h>
void _exit( int status );
- status
 
- The exit status to use for the program. The value may be zero, EXIT_STATUS, 
EXIT_FAILURE or any other value. Note that only 
the least significant bits (i.e. status and 0377) may be
available to a waiting parent process.
 
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
The _exit() function causes normal program termination to occur.
  | 
The functions registered with 
atexit()
aren't called when you use _exit() to terminate a program.
If you want those functions to be called, use
exit()
instead. | 
 
The _exit() function does the following when a process terminates for any
reason:
- Closes all open file descriptors and directory streams in the calling
        process.
    
 
- Notifies the parent process of the calling process if the
        parent called
        wait() or 
        waitpid().
        The low-order 8 bits of status are made available to the
        parent via wait() or waitpid().
    
 
- Saves the exit status if the parent process of the
        calling process isn't executing a wait() or
        waitpid() function.  If the parent calls wait()
        or waitpid() later, this status is returned immediately.
    
 
- Sends a SIGHUP signal to the calling process's
        children; this can indirectly cause the children to exit if they
        don't handle SIGHUP.
        Children of a terminated process are assigned a new parent
        process.
        
        
    
 
- Sends a SIGCHLD signal to the parent process.
        
        
    
 
- Sends a SIGHUP signal to each process in the
        foreground process group if the calling process is the controlling
        process for the controlling terminal of that process group.
        
        
        
    
 
- Disassociates the controlling terminal from the calling process's
        session if the process is a controlling process,
        allowing it to be acquired by a new controlling process.
        
    
 
- If the process exiting 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.
        
        
 
The _exit() function doesn't return.
#include <stdio.h>
#include <stdlib.h>
int 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 );
    /* 
     At this point, calling _exit() is the same as calling
     return EXIT_SUCCESS;...
    */ 
    _exit( EXIT_SUCCESS );
}
POSIX 1003.1
| Safety: |  | 
| Cancellation point | 
    No | 
| Interrupt handler | 
    No | 
| Signal handler | 
    Yes | 
| Thread | 
    Yes | 
abort(),
atexit(),
close(),
execl(),
execle(),
execlp(),
execlpe(),
execv(),
execve(),
execvp(),
execvpe(),
exit(),
getenv(),
main(),
putenv(),
sigaction(),
signal(),
spawn(),
spawnl(),
spawnle(),
spawnlp(),
spawnlpe(),
spawnp(),
spawnv(),
spawnve(),
spawnvp(),
spawnvpe(),
system(),
wait(),
waitpid()