exit
來自 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
語句的引數(如果使用了隱式返回,則為 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++ 文件 關於 exit
|