0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用exit()、_exit()和_Exit()來終止程序運(yùn)行呢?

jf_Vqngj70R ? 來源:美男子玩編程 ? 2024-02-22 12:20 ? 次閱讀

Linux系統(tǒng)下,你可以使用 exit()、_exit() 和 _Exit() 來終止程序運(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 庫的一部分,常用于 C 和 C++ 程序中。

當(dāng)調(diào)用時(shí),它執(zhí)行一系列的清理操作(如調(diào)用使用 atexit() 注冊的函數(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() 注冊的函數(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)庫的清理操作。

#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;
}

總的來說,exit() 是一個(gè)更高級(jí)別的函數(shù),在終止之前執(zhí)行各種清理操作,而 _exit() 和 _Exit() 是低級(jí)別的函數(shù),立即終止進(jìn)程而不執(zhí)行清理操作。_Exit() 是 POSIX 兼容系統(tǒng)中對 _exit() 的標(biāo)準(zhǔn)化版本。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    588

    瀏覽量

    27265

原文標(biāo)題:exit()、_exit()和_Exit()終止程序運(yùn)行

文章出處:【微信號(hào):美男子玩編程,微信公眾號(hào):美男子玩編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Linux的exit命令用途說明

    exit命令用于退出當(dāng)前shell,在shell腳本中可以終止當(dāng)前腳本執(zhí)行
    發(fā)表于 07-17 07:07

    linux的exit()與_exit()有什么區(qū)別

    void exit(int staus) 函數(shù), 在頭文件 #include void _exit(int status) 函數(shù),在頭文件 #include 中
    發(fā)表于 07-23 07:36

    STM32筆記之 EXIT(外部中斷)精選資料分享

    /O映像三、中斷服務(wù)四、配置流程(代碼解析)五、中斷函數(shù)處理在上一篇STM32筆記之 GPIO引腳中,有用到 EXIT外部中斷作為 Key輸入觸發(fā),所以本篇...
    發(fā)表于 08-05 06:10

    STM32F0中外部中斷EXIT

    推薦分享一個(gè)大神的人工智能教程。零基礎(chǔ)!通俗易懂!風(fēng)趣幽默!還帶黃段子!希望你也加入到人工智能的隊(duì)伍中?、?、概述EXIT外部中斷在使用到按鍵或者開關(guān)控制等應(yīng)用中比較常見,低功耗中斷喚醒也是很常見
    發(fā)表于 08-13 07:58

    定時(shí)器外部中斷(EXIT)概念

    文章目錄定時(shí)器中斷外部中斷(EXIT)概念與介紹使用的介紹使能IO時(shí)鐘&基本配置中斷優(yōu)先級(jí)(NVIC)中斷服務(wù)函數(shù)編寫中斷處理的回調(diào)函數(shù)HAL_GPIO_EXTI_Callback相關(guān)概念
    發(fā)表于 08-16 07:01

    EXIT外部中斷按鍵的誤觸發(fā)問題

    EXIT外部中斷 按鍵的誤觸發(fā)問題最近在調(diào)試按鍵作為外部中斷exti進(jìn)行觸發(fā)動(dòng)作,發(fā)現(xiàn)每次...
    發(fā)表于 08-16 06:46

    STM32之EXIT外部中斷的功能有哪些

    EXIT控制的原理是什么?EXIT外部中斷的功能有哪些?
    發(fā)表于 10-27 07:45

    如何對EXIT的外部中斷進(jìn)行配置

    EXIT外部中斷是什么?EXIT外部中斷有哪些功能?如何對EXIT的外部中斷進(jìn)行配置
    發(fā)表于 11-16 06:21

    基于EXIT圖和自適應(yīng)微粒群算法的度分布對優(yōu)化方法

    綜合EXIT 圖法和自適應(yīng)微粒群優(yōu)化(APSO)算法的優(yōu)點(diǎn),該文提出了一種基于EXIT 圖和APSO 算法的非正則LDPC 碼度分布對優(yōu)化方法。該方法設(shè)計(jì)了衡量EXIT 曲線匹配程度的全局代價(jià)函數(shù),并
    發(fā)表于 11-10 15:30 ?11次下載

    STM32F0xx_ EXIT中斷配置詳細(xì)過程

    STM32F0xx_EXIT中斷配置詳細(xì)過程
    的頭像 發(fā)表于 04-07 14:37 ?3174次閱讀
    STM32F0xx_ <b class='flag-5'>EXIT</b>中斷配置詳細(xì)過程

    STM32_ EXIT中斷

    STM32_EXIT中斷
    的頭像 發(fā)表于 04-08 11:12 ?3720次閱讀
    STM32_ <b class='flag-5'>EXIT</b>中斷

    Shell內(nèi)建命令:exit命令

    1.簡介 exit 命令是 Shell 內(nèi)建命令,用于退出當(dāng)前 Shell 進(jìn)程。 2.命令格式 exit ?N (1)狀態(tài)碼 N 的范圍是 0-255,一般情況下,0 表示正常退出,非零表示異常
    的頭像 發(fā)表于 02-02 10:45 ?3827次閱讀

    51單片機(jī)匯編學(xué)習(xí)例程(2)——Exit中斷篇

    2.ASM2_Exit: 外部中斷控制LED亮滅
    發(fā)表于 11-22 14:36 ?31次下載
    51單片機(jī)匯編學(xué)習(xí)例程(2)——<b class='flag-5'>Exit</b>中斷篇

    瑞薩e2studio(6)----EXIT

    瑞薩e2studio.6--EXIT概述硬件準(zhǔn)備外部中斷接口新建工程工程模板保存工程路徑芯片配置工程模板選擇LED燈配置EXIT配置EXIT屬性配置工程文件R_ICU_ExternalIrqOpen
    發(fā)表于 12-20 19:02 ?6次下載
    瑞薩e2studio(6)----<b class='flag-5'>EXIT</b>

    瑞薩e2studio(9)----EXIT

    本篇文章主要介紹如何使用e2studio對瑞薩單片機(jī)進(jìn)行EXIT檢測,之后通過按鍵形式以及燈的亮滅形式進(jìn)行演示。
    的頭像 發(fā)表于 11-15 10:53 ?1001次閱讀
    瑞薩e2studio(9)----<b class='flag-5'>EXIT</b>