名前空間
変種
操作

exit

From cppreference.com
< c‎ | program
ヘッダー <stdlib.h> で定義
void exit( int exit_code );
(C11まで)
_Noreturn void exit( int exit_code );
(C11 以降)
(C23まで)
[[noreturn]] void exit( int exit_code );
(C23以降)

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

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

  • atexit に渡された関数が、登録された逆順で呼び出されます。
  • すべての C ストリームがフラッシュされ、閉じられます。
  • tmpfile によって作成されたファイルが削除されます。
  • ホスト環境に制御が返されます。exit_code がゼロまたは EXIT_SUCCESS の場合、正常終了を示す実装定義のステータスが返されます。exit_codeEXIT_FAILURE の場合、異常終了を示す実装定義のステータスが返されます。その他の場合、実装定義のステータス値が返されます。

目次

[編集] 注記

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

プログラムが exit を複数回呼び出した場合、または exitquick_exit を呼び出した場合の動作は未定義です。

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

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

[編集] 引数

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( EXIT_FAILURE );
    }
    fclose(fp);
    printf("Normal Return\n");
    return EXIT_SUCCESS ;
}

実行結果の例

error opening file data.txt in function main()

[編集] 参考文献

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

[編集] 関連項目

(クリーンアップせずに)異常なプログラム終了を引き起こす
(関数) [編集]
exit() 呼び出し時に実行される関数を登録します。
(関数) [編集]
完全なクリーンアップを行わずに通常のプログラム終了を引き起こす
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)