NOTE: click here if you get an empty page.


ATEXIT(3)		   Linux Programmer's Manual		     ATEXIT(3)

NAME

atexit - register a function to be called at normal process termination

SYNOPSIS

#include <stdlib.h> int atexit(void (*function)(void));

DESCRIPTION

The atexit() function registers the given function to be called at nor- mal process termination, either via exit(3) or via return from the pro- gram's main(). Functions so registered are called in the reverse order of their registration; no arguments are passed. POSIX.1-2001 requires that an implementation allow at least ATEXIT_MAX (32) such functions to be registered. The actual limit supported by an implementation can be obtained using sysconf(3). When a child process is created via fork(), it inherits copies of the its parents registrations. Upon a successful call to one of the exec() functions, all registrations are removed.

RETURN VALUE

The atexit() function returns the value 0 if successful; otherwise it returns a non-zero value.

EXAMPLE

#include <stdio.h> #include <stdlib.h> #include <unistd.h> void bye(void) { printf("That was all, folks\n"); } int main(){ long a; int i; a = sysconf(_SC_ATEXIT_MAX); printf("ATEXIT_MAX = %ld\n", a); i = atexit(bye); if (i != 0) { fprintf(stderr, "cannot set exit function\n"); return EXIT_FAILURE; } return EXIT_SUCCESS; }

NOTES

Since glibc 2.2.3, atexit() (and on_exit()) can be used to within a shared library to establish functions that are called when the shared library is unloaded. Functions registered using atexit() (and on_exit()) are not called if a process terminates abnormally because of the delivery of a signal.

CONFORMING TO

SVr4, 4.3BSD, C89, C99, POSIX.1-2001.

SEE ALSO

_exit(3), exit(3), on_exit(3) 2003-11-01 ATEXIT(3)

1994 Man-cgi 1.15, Panagiotis Christias <christia@theseas.ntua.gr>