atexit
Register a function to be called on exit
Description
The atexit function registers the givenfunction
to be called at program exit, whether via reference:exit or via return from the program's main. Functions so registered are called in reverse order; no arguments are passed.
These functions must not call exit; if it should be necessary to terminate the process while in such a function, the _exit function should be used. Alternatively, the function may cause abnormal process termination, for example by calling reference:abort.
At least 32 functions can always be registered, and more are allowed as long as sufficient memory can be allocated.Example 1
#include <stdio.h> #include <stdlib.h> void bye() { printf("Bye bye!\n"); } void main() { // register the bye() function atexit(bye); // this first executes the function bye() // and then exits with error message 0 exit(0); }
Output:Bye bye!
Errors
ENOMEM | No memory was available to add the function to the list. The existing list of functions is unmodified. |
---|