atexit
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header <stdlib.h>
  | ||
| int atexit( void (*func)() ); | ||
Registers the function pointed to by func to be called on normal program termination (via exit() or returning from main()).
Calling the function from several threads does not induce a data race. The implementation shall support the registration of at least 32 functions.
| Contents | 
[edit] Parameters
| func | - | pointer to a function to be called on normal program termination | 
[edit] Return value
0 if the registration succeeds, nonzero value otherwise.
[edit] Exceptions
[edit] Example
| This section is incomplete Reason: no example | 
[edit] See also
| (C99) | registers a function to be called on quick_exit invocation (function) |