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 normal
process termination, either via exit(3) or via return from
the program'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
non-zero 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.
SEE ALSO
_exit(2), exit(3), on_exit(3)
Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Since the Linux kernel and libraries are constantly changing, this
manual page may be incorrect or out-of-date. The author(s) assume no
responsibility for errors or omissions, or for damages resulting from
the use of the information contained herein. The author(s) may not
have taken the same level of care in the production of this manual,
which is licensed free of charge, as they might when working
professionally.
Formatted or processed versions of this manual, if unaccompanied by
the source, must acknowledge the copyright and authors of this work.
References consulted:
Linux libc source code
Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
386BSD man pages
Modified 1993-03-29, David Metcalfe
Modified 1993-07-24, Rik Faith (faith@cs.unc.edu)
Modified 2003-10-25, Walter Harms
|