atexit() — プログラム終了の記録関数
形式
#include <stdlib.h>
int atexit(void (*func)(void));言語レベル
ANSI
スレッド・セーフ
はい
説明
atexit() 関数は、システムが通常のプログラム終了時に呼び出す funcによって指し示される関数を記録します。 移植性のためには、 atexit() 関数を使用して、最大 32 個の関数を登録する必要があります。 関数は後入れ先出し法で処理されます。 atexit() 関数は、OPM デフォルト活動化グループから呼び出すことはできません。 ほとんどの関数は atexit 関数で使用できますが、exit 関数が使用されると atexit 関数は失敗します。
戻り値
atexit() 関数は、成功した場合は 0 を返し、失敗した場合はゼロ以外の値を返します。
例
この例では、
atexit() 関数を使用して、プログラムの終了時に goodbye () を呼び出します。#include <stdlib.h>
#include <stdio.h>
int main(void)
{
void goodbye(void);
int rc;
rc = atexit(goodbye);
if (rc != 0)
perror("Error in atexit");
exit(0);
}
void goodbye(void)
/* This function is called at normal program end */
{
printf("The function goodbye was called at program end\n");
}
/**************** Output should be similar to: ******************
The function goodbye was called at program end
*/