Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::at_quick_exit

      From cppreference.com
      <cpp‎ |utility‎ |program
       
       
      Utilities library
       
       
      Defined in header<cstdlib>
      int at_quick_exit(/*atexit-handler*/* func)noexcept;
      int at_quick_exit(/*c-atexit-handler*/* func)noexcept;
      (1)(since C++11)
      extern"C++"using/*atexit-handler*/=void();
      extern"C"using/*c-atexit-handler*/=void();
      (2)(exposition only*)

      Registers the function pointed to byfunc to be called on quick program termination (viastd::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 onnormal program termination. If a function need to be called in that case,std::atexit must be used.

      Contents

      [edit]Parameters

      func - pointer to a function to be called on quick program termination

      [edit]Return value

      0 if the registration succeeds, nonzero value otherwise.

      [edit]Notes

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

      [edit]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 thirdpushed secondpushed first

      [edit]See also

      causes abnormal program termination (without cleaning up)
      (function)[edit]
      causes normal program termination with cleaning up
      (function)[edit]
      registers a function to be called onstd::exit() invocation
      (function)[edit]
      (C++11)
      causes quick program termination without completely cleaning up
      (function)[edit]
      C documentation forat_quick_exit
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/program/at_quick_exit&oldid=161408"

      [8]ページ先頭

      ©2009-2025 Movatter.jp