| Program termination | ||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||
| Unreachable control flow | ||||||||||||||||||||||||||||||||||||
(C23) | ||||||||||||||||||||||||||||||||||||
| Communicating with the environment | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
| Memory alignment query | ||||||||||||||||||||||||||||||||||||
(C23) | ||||||||||||||||||||||||||||||||||||
| Signals | ||||||||||||||||||||||||||||||||||||
| Signal types | ||||||||||||||||||||||||||||||||||||
| Non-local jumps | ||||||||||||||||||||||||||||||||||||
| Types | ||||||||||||||||||||||||||||||||||||
Defined in header <stdlib.h> | ||
int atexit(void(*func)(void)); | ||
Registers the function pointed to byfunc to be called on normal program termination (viaexit() or returning frommain()). The functions will be called in reverse order they were registered, i.e. the function registered last will be executed first.
The same function may be registered more than once.
The implementation is guaranteed to support the registration of at least32 functions. The exact limit is implementation-defined.
Contents |
| func | - | pointer to a function to be called on normal program termination |
0 if the registration succeeds, nonzero value otherwise.
#include <stdlib.h>#include <stdio.h> void f1(void){puts("f1");} void f2(void){puts("f2");} int main(void){if(! atexit(f1)&&! atexit(f2)&&! atexit(f2))returnEXIT_SUCCESS; // atexit registration failedreturnEXIT_FAILURE; }// <- if registration was successful calls f2, f2, f1
Output:
f2f2f1
(C11) | registers a function to be called onquick_exit invocation (function)[edit] |
C++ documentation foratexit | |