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);
}
}