先頭へ戻る

exit | Programming Place Plus C言語編 標準ライブラリのリファレンス

Programming Place Plus トップページ -- C言語編 -- 標準ライブラリのリファレンス(名前順)

Programming Place Plus トップページ -- C言語編 -- 標準ライブラリのリファレンス(ヘッダ別)

先頭へ戻る

exit関数

概要

プログラムを正常終了させる。

ヘッダ

stdlib.h

形式

void exit(int status);

引数

status

終了の意味合いを示す値。0 あるいは EXIT_SUCCESS は成功終了を表す。EXIT_FAILURE は失敗終了を表す。これら以外の値を返した場合の動作は、処理系定義。

戻り値

なし(呼び出し元に戻ることがない)

詳細

プログラムを正常終了させる。制御がプログラムの実行環境へ戻されるが、その際に何らかの結果を処理系定義の形で返す。
終了前に、atexit関数で登録されていた関数が、登録された順番の逆順に実行される。その後、オープンされていた出力ストリームがフラッシュされる。そして、すべてのストリームがクローズされる。また、tmpfile関数が生成していた一時ファイルも削除される。最後に、プログラムが終了する。

注意

atexit関数で登録した関数の中から、さらに exit関数や longjmp関数を呼び出した場合の動作は未定義。
なお、引数に EXIT_FAILURE を指定した失敗終了と、abort関数による異常終了とでは意味が異なる。

使用例

#include <stdio.h>
#include <stdlib.h>

void onExit(void)
{
    puts( "onExit" );
}

int main(void)
{
    puts( "aaaaa" );

    atexit( onExit );
    exit( EXIT_SUCCESS );

    puts( "bbbbb" );

    return 0;
}

実行結果:

aaaaa
onExit

関連

exit関数による終了処理の際に呼び出される関数を atexit関数で登録できる。
exit関数以外にプログラムを終了させる関数として、異常終了を表す abort関数がある。
C99 では、いくつかの処理を省いた _Exit関数が追加されている。

解説章


参考リンク


------------------------------------------------------------------------

更新履歴

'2018/4/24 _Exit関数の追加を受けて、全体的に文章を見直し修正。

'2018/4/6 すべてのストリームがクローズされることを追記。
atexit関数によって登録した関数内で longjmp関数が呼び出された場合の動作について追記。
「不成功」という表現を「失敗」に統一。

'2018/1/22 新規作成。


------------------------------------------------------------------------

標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー