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