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

FreeBSD Manual Pages

  
 
  

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

NAME
     exit, _Exit -- perform normal program termination

LIBRARY
     Standard C	Library	(libc, -lc)

SYNOPSIS
     #include <stdlib.h>

     void
     exit(int status);

     void
     _Exit(int status);

DESCRIPTION
     The exit()	and _Exit() functions terminate	a process.

     Before termination, exit()	performs the following functions in the	order
     listed:

	   1.	Call all functions registered with the __cxa_atexit(3) func-
		tion (which are	typically destructors from the loaded dynamic
		objects), and the functions registered with the	atexit(3)
		function, in the reverse order of their	registration.

	   2.	Flush all open output streams.

	   3.	Close all open streams.

     The _Exit() function terminates without calling the functions registered
     with the atexit(3)	function, and may or may not perform the other actions
     listed.  The FreeBSD implementation of the	_Exit()	function does not call
     destructors registered with __cxa_atexit(3,) does not flush buffers, and
     does not close streams.

     Both functions make the low-order eight bits of the status	argument
     available to a parent process which has called a wait(2)-family function.

     The C Standard (ISO/IEC 9899:1999 ("ISO C99")) defines the	values 0,
     EXIT_SUCCESS, and EXIT_FAILURE as possible	values of status.  Cooperating
     processes may use other values; in	a program which	might be called	by a
     mail transfer agent, the values described in sysexits(3) may be used to
     provide more information to the parent process.

     Note that exit() does nothing to prevent bottomless recursion should a
     function registered using atexit(3) itself	call exit().  Such functions
     must call _Exit() instead (although this has other	effects	as well	which
     may not be	desired).

RETURN VALUES
     The exit()	and _Exit() functions never return.

SEE ALSO
     _exit(2), abort2(2), wait(2), at_quick_exit(3), atexit(3),	intro(3),
     quick_exit(3), sysexits(3), tmpfile(3)

STANDARDS
     The exit()	and _Exit() functions conform to ISO/IEC 9899:1999
     ("ISO C99").

HISTORY
     The exit()	function appeared in Version 1 AT&T UNIX.

FreeBSD	13.0			August 5, 2021			  FreeBSD 13.0

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS | HISTORY

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=exit&sektion=3&manpath=FreeBSD+13.1-RELEASE>

home | help