FreeBSD Manual Pages
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)
NAME | Synopsis | Parameters | Return value | Notes | Example | Output: | See also
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>
