exit
From cppreference.com
| ヘッダー <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_codeが EXIT_FAILURE の場合、異常終了を示す実装定義のステータスが返されます。その他の場合、実装定義のステータス値が返されます。
目次 |
[編集] 注記
at_quick_exit で登録された関数は呼び出されません。
プログラムが exit を複数回呼び出した場合、または exit と quick_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() 呼び出し時に実行される関数を登録します。 (関数) | |
| (C11) |
完全なクリーンアップを行わずに通常のプログラム終了を引き起こす (関数) |
| C++ ドキュメント (exit)
| |