exit() — プログラムの終了

形式

#include <stdlib.h>
void exit(int status);

言語レベル

ANSI

スレッド・セーフ

はい

説明

exit() 関数は、プログラムからホスト環境に制御を戻します。 まず、 atexit() 関数に登録されているすべての関数を逆順で呼び出します。つまり、最後に登録された関数が最初に呼び出されます。 プログラムを終了する前に、すべてのバッファーを削除し、すべてのオープン・ファイルをクローズします。

引数 status は 0 以上 255 以下の値か、またはマクロ EXIT_SUCCESS または EXIT_FAILURE のいずれかの値をとることができます。 status の値が、EXIT_SUCCESS または 0 の場合、通常の終了を示します。それ以外の場合は、別の status 値が戻されます。

注: exit() 関数は、非同期シグナル・ハンドラー内で呼び出すことはできません。 これは、SYSIFCOPT (*ASYNCSIGNAL) を指定してコンパイルした場合、シグナル・ハンドラーで exit() を呼び出すことができないことを意味します。

戻り値

exit() 関数は、制御と status の値の両方をオペレーティング・システムに戻します。

次の例は、ファイル myfile をオープンできない場合に、バッファーを削除し、すべてのオープン・ファイルをクローズした後でプログラムを終了します。
#include <stdio.h>
#include <stdlib.h>
 
FILE *stream;
 
int main(void)
{
   if ((stream = fopen("mylib/myfile", "r")) == NULL)
   {
      perror("Could not open data file");
      exit(EXIT_FAILURE);
   }
}

関連情報