• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function
    <cstdlib>

    std::atexit

    namespace std {
      extern "C" int atexit(void (*f)(void));          // (1) C++03
      extern "C" int atexit(void (*f)(void)) noexcept; // (1) C++11
    
      extern "C++" int atexit(void (*f)(void));          // (2) C++03
      extern "C++" int atexit(void (*f)(void)) noexcept; // (2) C++11
    }
    

    概要

    プログラムが通常の方法で終了するときに呼ばれる関数を登録する。

    効果

    この関数に指定した関数は、以下の条件のときに呼び出される:

    • main()関数が返る。
    • std::exit()関数が呼び出される。

    指定された関数は、プログラムの終了処理において、static変数の破棄が行われる前に呼び出される。

    指定された関数の中で例外が送出された場合、std::terminate()関数が呼び出され、プログラムが異常終了する。

    戻り値

    関数の登録に成功した場合は0が返り、失敗した場合は非0が返る。

    備考

    この関数では、複数の関数を登録できる。

    登録できる上限数は実装定義だが、32個以上は登録できることが実装に要求される。

    #include <iostream>
    #include <cstdlib>
    
    void on_exit()
    {
      std::cout << "on exit" << std::endl;
    }
    
    int main()
    {
      std::atexit(on_exit);
    }
    

    出力

    on exit
    

    関連項目

    名前 説明
    exit プログラムを終了させる