Defined in header <stdlib.h> | ||
---|---|---|
void exit( int exit_code ); | (until C11) | |
_Noreturn void exit( int exit_code ); | (since C11) |
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