exit()

Exit the calling program

Synopsis:

#include <stdlib.h>

void exit( int status );

Arguments:

status
The exit status to use for the program. The value may be zero, EXIT_SUCCESS, EXIT_FAILURE or any other value. Note that only the least significant bits (i.e., status & 0377) may be available to a waiting parent process.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The exit() function causes the calling program to exit normally. When a program exits normally:

  1. All functions registered with the atexit() function are called.
  2. All open file streams (those opened by fopen(), fdopen(), freopen(), or popen()) are flushed and closed.
  3. All temporary files created by tmpfile() are removed.
  4. The return status is made available to the parent process; status is typically set to EXIT_SUCCESS to indicate successful termination and set to EXIT_FAILURE or some other value to indicate an error.

Returns:

The exit() function doesn't return.

Examples:

#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 );
    exit( EXIT_SUCCESS );
    
    /*
     You'll never get here; this prevents compiler
     warnings about "function has no return value".
    */
    return EXIT_SUCCESS;
}

Classification:

ANSI, POSIX 1003.1

Safety:  
Cancellation point No
Interrupt handler No
Signal handler No
Thread Yes