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
*/

関連情報