?
Dieses Dokument verwendet PHP-Handbuch für chinesische Websites Freigeben
在頭文件<stdlib.h>中定義 | ||
---|---|---|
void exit(int exit_code); | (直到C11) | |
_Noreturn void exit(int exit_code); | (自C11以來) |
導致正常程序終止發(fā)生。
執(zhí)行幾個清理步驟:
傳遞給atexit的函數(shù)被調用,按照注冊的相反順序
所有C流都被刷新并關閉
由tmpfile創(chuàng)建的文件被刪除
控制權返回到主機環(huán)境。 如果exit_code為零或EXIT_SUCCESS,則返回實現(xiàn)定義的狀態(tài),表示成功終止。 如果exit_code為EXIT_FAILURE,則返回實現(xiàn)定義的狀態(tài),表示不成功終止。 在其他情況下,返回實現(xiàn)定義的狀態(tài)值。
用at_quick_exit注冊的函數(shù)不會被調用。
如果一個程序多次調用exit或者調用exit和quick_exit,則行為是不確定的。
如果在調用使用atexit注冊的函數(shù)期間,行為是不確定的,函數(shù)將以longjmp退出。
從主函數(shù)返回,通過返回語句或到達函數(shù)結尾,執(zhí)行exit(),將return語句的參數(shù)(如果使用隱式返回,則返回0)作為exit_code。
exit_code | - | 退出程序的狀態(tài) |
---|
(none).
#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標準(ISO / IEC 9899:2011):
7.22.4.4退出功能(p:351-352)
C99標準(ISO / IEC 9899:1999):
7.20.4.3退出功能(p:315-316)
C89 / C90標準(ISO / IEC 9899:1990):
4.10.4.3退出功能
abort | 導致程序異常終止(不清除)(功能) |
---|---|
atexit | 注冊要在exit()調用(函數(shù))上調用的函數(shù) |
quick_exit(C11) | 導致正常程序終止而沒有完全清理(功能) |
| 用于退出的C ++文檔|