C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス atexit

🔧 標準ライブラリ ・ stdlib.h ・ C89

atexit の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

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

どんな関数か

プログラム正常終了時(exit呼び出しまたはmainからのreturn)に自動的に呼び出される関数を登録する。後片付け処理(ログのフラッシュ等)をまとめておくのに使われる仕組み。 複数回呼び出して複数の後始末関数を登録することもでき、モジュールごとに片付け処理を分離できる。

使用例

#include <stdlib.h>
#include <stdio.h>
void cleanup(void) {
    puts("cleanup called");
}
int main(void) {
    atexit(cleanup);
    puts("main end");
    return 0;
}

つまずきやすい注意点

⚠️ 登録した関数は登録した順と逆順に呼ばれる。abort()やクラッシュでは呼ばれない。

アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ

atexit と一緒に使う関数

exitプログラムを直ちに終了させる。atexitで登録した関数を呼び出し、開いているストリームをフラッシュ・クローズしてからO… abortプログラムを異常終了させる。atexitで登録した関数は呼び出されず、シグナルSIGABRTを発生させて即座に終了する。…

同じ分類(標準ライブラリ)の関数

abort abs atof atoi bsearch calloc div exit free getenv labs malloc qsort rand realloc srand

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る