atexit | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


atexit関数

概要

プログラムの正常終了時に呼び出される関数を登録する。

ヘッダ

stdlib.h

形式

int atexit(void (*func)(void));

引数

func

登録する関数。

戻り値

登録に成功すると 0 が返される。失敗した場合は 0以外が返される。

詳細

通常の処理の流れで、main関数を抜け出してプログラムが終了した場合や、exit関数が呼び出されたときに呼び出される関数を登録する。

関数は複数登録でき、最後に登録したものから順番に呼び出される。登録できる関数の個数の制限は、処理系によって異なるが、最低でも 32個は登録できることになっている。

注意

_Exit関数quick_exit関数(C11)、abort関数は、atexit関数で登録した関数を呼び出さない。

使用例

#include <stdio.h>
#include <stdlib.h>

void on_exit1(void);
void on_exit2(void);

int main(void)
{
    atexit(on_exit1);
    atexit(on_exit2);
}

void on_exit1(void)
{
    puts("on_exit1");
}

void on_exit2(void)
{
    puts("on_exit2");
}

実行結果:

on_exit2
on_exit1
関連 プログラムの終了に quick_exit関数を使う場合、atexit関数で登録した関数は呼ばれないので、代わりに at_quick_exit関数を用いる。
解説章


参考リンク


更新履歴

’2018/4/4 「注意」の内容を修正。登録した関数内から exit関数を呼び出した場合に関する記述を削除した(規格には特に記述がないため)。

’2018/1/22 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る