Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ATEXIT(3)	       FreeBSD Library Functions Manual		     ATEXIT(3)

NAME
     atexit -- register	a function to be called	on exit

SYNOPSIS
     #include <stdlib.h>

     int
     atexit(void (*function)(void));

DESCRIPTION
     The atexit() function registers the given function	to be called at	pro-
     gram exit,	whether	via exit(3) or via return from the program's main().
     Functions so registered are called	in reverse order; no arguments are
     passed.  At least 32 functions can	always be registered, and more are al-
     lowed as long as sufficient memory	can be allocated.

     If	a shared object	is unloaded from process memory	using dlclose(3), then
     any functions registered by calling atexit() from that shared object will
     be	called in reverse order	and unregistered.  Note	that it	is the source
     of	the call to atexit() that matters, not the source of the function that
     was registered.

     atexit() is very difficult	to use correctly without creating exit(3)-time
     races.  Unless absolutely necessary, please avoid using it.

RETURN VALUES
     The atexit	function returns the value 0 if	successful; otherwise a	non-
     zero value	is returned and	the global variable errno is set to indicate
     the error.

ERRORS
     [ENOMEM]		No memory was available	to add the function to the
			list.  The existing list of functions is unmodified.

SEE ALSO
     dlclose(3), exit(3)

STANDARDS
     The atexit() function conforms to ANSI X3.159-1989	("ANSI C89").

     Setting errno on error and	the behavior when a shared object is unloaded
     are extensions to that standard.

FreeBSD	13.0			 June 27, 2019			  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=atexit&sektion=3&manpath=OpenBSD+6.9>

home | help