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