| Defined in header <stdlib.h> | ||
|---|---|---|
| void exit( int exit_code ); | (until C11) | |
| _Noreturn void exit( int exit_code ); | (since C11) (until C23) | |
| [[noreturn]] void exit( int exit_code ); | (since C23) | 
Causes normal program termination to occur.
Several cleanup steps are performed:
atexit are called, in reverse order of registration tmpfile are removed exit_code is zero or EXIT_SUCCESS, an implementation-defined status indicating successful termination is returned. If exit_code is EXIT_FAILURE, an implementation-defined status indicating unsuccessful termination is returned. In other cases implementation-defined status value is returned. The functions registered with at_quick_exit are not called.
The behavior is undefined if a program calls exit more than once, or if it calls exit and quick_exit
The behavior is undefined if during a call to a function registered with atexit, the function exits with longjmp.
Returning from the the main function, either by a return statement or by reaching the end of the function, executes exit(), passing the argument of the return statement (or 0 if implicit return was used) as exit_code.
| exit_code | - | exit status of the program | 
(none)
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    FILE *fp = fopen("data.txt","r");
    if (fp == NULL)
    {
       fprintf(stderr, "error opening file data.txt in function main()\n");
       exit( EXIT_FAILURE );
    }
    fclose(fp);
    printf("Normal Return\n");
    return EXIT_SUCCESS ;
}Possible output:
error opening file data.txt in function main()
| causes abnormal program termination (without cleaning up) (function) | |
| registers a function to be called on exit()invocation(function) | |
| (C11) | causes normal program termination without completely cleaning up (function) | 
| C++ documentation for exit | |
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    https://en.cppreference.com/w/c/program/exit