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

FreeBSD Manual Pages

  
 
  

home | help
std::at_quick_exit(3)	      C++ Standard Libary	 std::at_quick_exit(3)

NAME
       std::at_quick_exit - std::at_quick_exit

Synopsis
	  Defined in header <cstdlib>
	  int at_quick_exit( /*atexit-handler*/* func )	noexcept;   (1)	(since
       C++11)
	  int at_quick_exit( /*c-atexit-handler*/* func	) noexcept;
	  extern "C++" using /*atexit-handler*/	= void();	    (2)	(expo-
       sition only*)
	  extern "C" using /*c-atexit-handler*/	= void();

	  Registers the	function pointed to by func to be called on quick pro-
       gram termination
	  (via std::quick_exit).

	  Calling  the	function  from	several	threads	does not induce	a data
       race. The
	  implementation is guaranteed to support the registration of at least
       32 functions.
	  The exact limit is implementation-defined.

	  The registered functions will	not be called on normal	program	termi-
       nation. If a
	  function need	to be called in	that case, std::atexit must be used.

Parameters
	  func - pointer to a function to be called on quick program  termina-
       tion

Return value
	  0 if the registration	succeeds, nonzero value	otherwise.

Notes
	  The  two  overloads  are distinct because the	types of the parameter
       func are	distinct
	  (language linkage is part of its type).

Example
       // Run this code

	#include <cstdlib>
	#include <iostream>

	void f1()
	{
	    std::cout << "pushed first"	<< std::endl; // flush is intentional
	}

	extern "C" void	f2()
	{
	    std::cout << "pushed second\n";
	}

	int main()
	{
	    auto f3 = []
	    {
		std::cout << "pushed third\n";
	    };

	    std::at_quick_exit(f1);
	    std::at_quick_exit(f2);
	    std::at_quick_exit(f3);
	    std::quick_exit(0);
	}

Output:
	pushed third
	pushed second
	pushed first

See also
	  abort	     causes abnormal program termination (without cleaning up)
		     (function)
	  exit	     causes normal program termination with cleaning up
		     (function)
	  atexit     registers a function to be	called on std::exit()  invoca-
       tion
		     (function)
	  quick_exit  causes  quick  program  termination  without  completely
       cleaning	up
	  (C++11)    (function)
	  C documentation for
	  at_quick_exit

http://cppreference.com		  2024.06.10		 std::at_quick_exit(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::at_quick_exit&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help