函数exit()详解:参数EXIT_FAILURE(是1),EXIT_SUCCESS(是0)
前言
EXIT_FAILURE和EXIT_SUCCESS是C語言頭文件庫中定義的一個符號常量,在vc++6.0下頭文件stdlib.h中定義如:
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
EXIT_FAILURE 可以作為exit()的參數(shù)來使用,表示沒有成功的執(zhí)行一個程序。
EXIT_SUCCESS作為exit()的參數(shù)來使用,表示成功地執(zhí)行一個程序。
函數(shù)名: exit()
所在頭文件:stdlib.h(如果是”VC6.0“的話頭文件為:windows.h)
功 能: 關(guān)閉所有文件,終止正在執(zhí)行的進程。
exit(0)表示正常退出,
exit(x)(x不為0)都表示異常退出,這個x是返回給操作系統(tǒng)(包括UNIX,Linux,和MS DOS)的,以供其他程序使用。
stdlib.h: void exit(int status);//參 數(shù)status,程序退出的返回值
按照ANSI C,在最初調(diào)用的main()中使用return和exit()的效果相同。
但要注意這里所說的是“最初調(diào)用”。如果main()在一個遞歸程序中,exit()仍然會終止程序;但return將控制權(quán)移交給遞歸的前一級,直到最初的那一級,此時return才會終止程序。return和exit()的另一個區(qū)別在于,即使在除main()之外的函數(shù)中調(diào)用exit(),它也將終止程序。
(注意:當(dāng)父進程創(chuàng)建了一個子進程并且子進程正常執(zhí)行結(jié)束后,最后一句用了exit(EXIT_SUCCESS);只會終止這個子進程,不會終止父進程和其他的子進程)
程序例子
#include <io.h>
#include <conio.h>
#include <stdlib.h>
int main(void){
if((_unlink(“D:\sample.txt”))==1){
cprintf(“刪除成功\n”);
exit(EXIT_SUCCESS);
}else{
cprintf(“刪除失敗\n”);
exit(EXIT_FAILURE);
}
return 0;
}
文章參考來源:https://baike.baidu.com/item/EXIT_FAILURE/1205713
總結(jié):
1、exit(1)表示異常退出,在退出前可以給出一些提示信息,或在調(diào)試程序中察看出錯原因。
2、exit(0)表示正常退出。
3、 return是語言級別的,是關(guān)鍵字,它表示了調(diào)用堆棧的返回,return用于結(jié)束一個函數(shù)的執(zhí)行,將函數(shù)的執(zhí)行信息傳出個其他調(diào)用函數(shù)使用,如果返回的是main函數(shù),則為退出程序。
而exit是系統(tǒng)調(diào)用級別的,是一個函數(shù),它表示了一個進程的結(jié)束。 exit是在調(diào)用處強行退出程序,運行一次程序就結(jié)束。這個狀態(tài)標(biāo)識了應(yīng)用程序的一些運行信息,這個信息和機器和操作系統(tǒng)有關(guān)。
參考
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的函数exit()详解:参数EXIT_FAILURE(是1),EXIT_SUCCESS(是0)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++中的指针变量可以相互赋值,使得
- 下一篇: OS实验注意点