名前空間
変種
操作

exit

提供: cppreference.com
< c‎ | program
ヘッダ <stdlib.h> で定義
void exit( int exit_code );
(C11未満)
_Noreturn void exit( int exit_code );
(C11以上)

プログラムの正常終了を発生させます。

いくつかのクリーンアップステップが行われます。

  • atexit に渡された関数が登録の逆順で呼ばれます。
  • すべての C のストリームがフラッシュされ閉じられます。
  • tmpfile によって作成されたファイルが削除されます。
  • 制御がホスト環境に返されます。 exit_code がゼロまたは EXIT_SUCCESS であれば、成功終了を表す処理系定義のステータスが返されます。 exit_codeEXIT_FAILURE であれば、失敗終了を表す処理系定義の終了ステータスが返されます。 それ以外の場合は、処理系定義のステータス値が返されます。

目次

[編集] ノート

at_quick_exit で登録された関数は呼ばれません。

プログラムが exit を2回以上呼んだ場合、または exitquick_exit を呼んだ場合、動作は未定義です。

atexit で登録された関数の呼び出し中にその関数が longjmp で終了した場合、動作は未定義です。

return 文または関数の終わりへの到達のいずれかによって main 関数から戻ると、 return 文の引数 (または暗黙の return が使用された場合は 0) を exit_code として渡して exit() を実行します。

[編集] 引数

exit_code - プログラムの終了ステータス

[編集] 戻り値

(なし)

[編集]

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    FILE *fp = fopen("data.txt","r");
    if (fp == NULL) {
       fprintf(stderr, "error opening file data.txt in function main()\n");
       exit(1);
    }
    fclose(fp);
    printf("Normal Return\n");
}

出力:

error opening file data.txt in function main()

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.22.4.4 The exit function (p: 351-352)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.20.4.3 The exit function (p: 315-316)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.10.4.3 The exit function

[編集] 関連項目

(クリーンアップせずに)プログラムを異常終了させます
(関数) [edit]
exit() が行われた時に呼ばれる関数を登録します
(関数) [edit]
完全なクリーンアップをせずにプログラムを正常終了させます
(関数) [edit]