Namespaces
Variants
Views
Actions

atexit

From cppreference.com
< c‎ | program
Revision as of 03:19, 30 September 2013 by Eendy (Talk | contribs)

Defined in header <stdlib.h>
int atexit( void (*func)() );

Registers the function pointed to by func to be called on normal program termination (via std::exit() or returning from main()). 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.

atexit is thread-safe: calling the function from several threads does not induce a data race.

The implementation is guaranteed to support the registration of at least 32 functions. The exact limit is implementation-defined.

Contents

Parameters

func - pointer to a function to be called on normal program termination

Return value

0 if the registration succeeds, nonzero value otherwise.

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

See also

registers a function to be called on quick_exit invocation
(function) [edit]