在Linux系統(tǒng)下,你可以使用 exit()、_exit() 和 _Exit() 來(lái)終止程序運(yùn)行,特別是在出現(xiàn)錯(cuò)誤或執(zhí)行失敗的情況下。這樣可以確保程序在發(fā)生嚴(yán)重錯(cuò)誤時(shí)能夠安全地退出。
1
exit() 函數(shù)
用法:void exit(int status)。
exit() 函數(shù)是標(biāo)準(zhǔn) C 庫(kù)的一部分,常用于 C 和 C++ 程序中。
當(dāng)調(diào)用時(shí),它執(zhí)行一系列的清理操作(如調(diào)用使用 atexit() 注冊(cè)的函數(shù)),刷新 I/O 緩沖區(qū),然后終止程序。
status 參數(shù)是一個(gè)整數(shù)值,返回給調(diào)用進(jìn)程的父進(jìn)程。
通常,零狀態(tài)表示正常終止,而非零狀態(tài)可能表示錯(cuò)誤或異常終止。
以下例子中,exit(0) 將立即終止程序,不會(huì)執(zhí)行 printf("After exit() "); 后的代碼。exit(0) 表示正常終止。
#include
#include
int main() {
printf("Before exit()
");
// The exit() function performs cleanup actions and terminates the program.
exit(0);
// The following code will not be executed.
printf("After exit()
");
return 0;
}
2
_exit() 函數(shù)
用法: void _exit(int status)。
_exit() 函數(shù)是一個(gè)系統(tǒng)調(diào)用,立即終止調(diào)用的進(jìn)程,而不執(zhí)行 exit() 所做的清理操作。
它不刷新 I/O 緩沖區(qū),也不關(guān)閉打開的文件描述符,并且不調(diào)用使用 atexit() 注冊(cè)的函數(shù)。
status 參數(shù)被返回給父進(jìn)程。
與 exit() 不同,_exit(0) 不會(huì)執(zhí)行任何清理動(dòng)作,而是立即終止程序。與 exit() 不同,_exit() 函數(shù)是一個(gè)系統(tǒng)調(diào)用,不執(zhí)行標(biāo)準(zhǔn)庫(kù)的清理操作。
#include
#include
int main() {
printf("Before _exit()
");
// The _exit() function immediately terminates the program without cleanup.
_exit(0);
// The following code will not be executed.
printf("After _exit()
");
return 0;
}
3
_Exit() 函數(shù)
用法: void _Exit(int status)。
與 _exit() 類似,_Exit() 是一個(gè)系統(tǒng)調(diào)用,它在不執(zhí)行清理操作的情況下立即終止調(diào)用的進(jìn)程。
_Exit() 的行為類似于 _exit(),但其設(shè)計(jì)與 exit() 具有相同的函數(shù)簽名。
它在 POSIX 兼容系統(tǒng)中得到標(biāo)準(zhǔn)化。
_Exit(0) 與 _exit(0) 類似,都是立即終止程序。在 POSIX 系統(tǒng)中,_Exit() 是標(biāo)準(zhǔn)化的版本。
#include
#include
int main() {
printf("Before _Exit()
");
// The _Exit() function immediately terminates the program without cleanup.
_Exit(0);
// The following code will not be executed.
printf("After _Exit()
");
return 0;
}
總的來(lái)說(shuō),exit() 是一個(gè)更高級(jí)別的函數(shù),在終止之前執(zhí)行各種清理操作,而 _exit() 和 _Exit() 是低級(jí)別的函數(shù),立即終止進(jìn)程而不執(zhí)行清理操作。_Exit() 是 POSIX 兼容系統(tǒng)中對(duì) _exit() 的標(biāo)準(zhǔn)化版本。
審核編輯:劉清
-
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
614瀏覽量
29900
原文標(biāo)題:exit()、_exit()和_Exit()終止程序運(yùn)行
文章出處:【微信號(hào):美男子玩編程,微信公眾號(hào):美男子玩編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何使用EXIT0來(lái)觸發(fā)DMA實(shí)現(xiàn)SPI發(fā)送數(shù)據(jù)?
linux的exit()與_exit()有什么區(qū)別
STM32筆記之 EXIT(外部中斷)精選資料分享
STM32F0中外部中斷EXIT
定時(shí)器外部中斷(EXIT)概念
如何對(duì)EXIT的外部中斷進(jìn)行配置呢
基于EXIT圖和自適應(yīng)微粒群算法的度分布對(duì)優(yōu)化方法
Shell內(nèi)建命令:exit命令
瑞薩e2studio(6)----EXIT
瑞薩e2studio(9)----EXIT
如何使用exit()、_exit()和_Exit()來(lái)終止程序運(yùn)行呢?
評(píng)論