Yolinux.com

atexit manpage

Search topic Section


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(2), it inherits copies of its
       parent's registrations.	Upon a successful call to one of  the  exec(3)
       functions, all registrations are removed.

RETURN VALUE
       The  atexit()  function returns the value 0 if successful; otherwise it
       returns a nonzero value.

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

NOTES
       Functions registered using atexit() (and on_exit(3)) are not called  if
       a process terminates abnormally because of the delivery of a signal.

   Linux Notes
       Since  glibc  2.2.3,  atexit()  (and  on_exit(3))  can be used within a
       shared library to establish functions that are called when  the	shared
       library is unloaded.

EXAMPLE
       #include <stdio.h>
       #include <stdlib.h>
       #include <unistd.h>

       void
       bye(void)
       {
	   printf("That was all, folks\n");
       }

       int
       main(void)
       {
	   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");
	       exit(EXIT_FAILURE);
	   }

	   exit(EXIT_SUCCESS);
       }

SEE ALSO
       _exit(2), exit(3), on_exit(3)

COLOPHON
       This  page  is  part of release 2.77 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at http://www.kernel.org/doc/man-pages/.



Linux				  2003-11-01			     ATEXIT(3)
Hypertext Manpage Browser (atexit)
YoLinux.com Home Page
YoLinux Tutorial Index
Privacy Policy | Advertise with us | Feedback Form |
Unauthorized copying or redistribution prohibited.
    Bookmark and Share