exit
|
定義先ヘッダ
<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文の引数(または暗黙的な戻りが使用された場合は
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 exit関数 (p: 256)
- C11規格 (ISO/IEC 9899:2011):
-
- 7.22.4.4 exit関数 (p: 351-352)
- C99規格 (ISO/IEC 9899:1999):
-
- 7.20.4.3 exit関数 (p: 315-316)
- C89/C90標準 (ISO/IEC 9899:1990):
-
- 4.10.4.3 exit関数
関連項目
|
異常なプログラム終了を引き起こす(クリーンアップなし)
(関数) |
|
|
exit()
呼び出し時に実行される関数を登録する
(関数) |
|
|
(C11)
|
完全なクリーンアップなしで正常なプログラム終了を引き起こす
(関数) |
|
C++ documentation
for
exit
|
|