Name

atexit

Synopsis

Registers a function to be called when the program exits

#include <stdlib.h>
intatexit( void (*func)( void ));

The argument of the atexit() function is a pointer to a function of type void that has no parameters. If the atexit() call is successful, your program will call the function referenced by this pointer if and when it exits normally. The atexit() call returns 0 to indicate that the specified function has been registered successfully.

You may call atexit() up to 32 times in a program. If you register more than one function in this way, they will be called in LIFO order: the last function registered will be the first one called when your program exists.

Example

int main()
{
  void f1(void), f2(void);

  printf("Registering the \"at-exit\" functions f1 and f2:");

  if (atexit(f1) || atexit(f2) )
    printf(" failed.\n");
  else
    printf(" done.\n");

  printf("Exiting now.\n");
  exit(0);           // Equivalent to return 0;
}
void f1(void)
{ printf("Running the \"at-exit\" function f1().\n"); }
void f2(void)
{ printf("Running the \"at-exit\" function f2().\n"); }

This code produces the following output:

Registering the "at-exit" functions f1 and f2: done.
Exiting now.
Running the "at-exit" function f2().
Running the "at-exit" function f1().

Get C in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.