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

noexcept specification:  
noexcept
  (since C++11)

[edit] Example

#include <stdlib.h>
#include <stdio.h>
 
void f1()
{
    puts("pushed first");
}
 
void f2()
{
    puts("pushed second");
}
 
int main()
{
    atexit(f1);
    atexit(f2);
}

Output:

pushed second
pushed first

[edit] See also

registers a function to be called on quick_exit invocation
(function)