🔧 標準ライブラリ ・ stdlib.h ・ C89
atexit の使い方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 と一緒に使う関数もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。