atexit(3) - phpMan

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)