簡(jiǎn)要對(duì)比C語(yǔ)言中三個(gè)用于退出進(jìn)程的函數(shù)
C語(yǔ)言_exit()函數(shù):結(jié)束進(jìn)程執(zhí)行
頭文件:
#include <unistd.h>
定義函數(shù):
void _exit(int status);
函數(shù)說(shuō)明:_exit()用來(lái)立刻結(jié)束目前進(jìn)程的執(zhí)行, 并把參數(shù)status 返回給父進(jìn)程, 并關(guān)閉未關(guān)閉的文件. 此函數(shù)調(diào)用后不會(huì)返回, 并且會(huì)傳遞SIGCHLD 信號(hào)給父進(jìn)程, 父進(jìn)程可以由wait 函數(shù)取得子進(jìn)程結(jié)束狀態(tài).
附加說(shuō)明:_exit ()不會(huì)處理標(biāo)準(zhǔn)I/O 緩沖區(qū), 如要更新緩沖區(qū)請(qǐng)使用exit ().
C語(yǔ)言on_exit()函數(shù):設(shè)置程序正常結(jié)束前調(diào)用的函數(shù)
頭文件:
#include <stdlib.h>
定義函數(shù):
int on_exit(void (* function) (int void*), void *arg);
函數(shù)說(shuō)明:on_exit()用來(lái)設(shè)置一個(gè)程序正常結(jié)束前調(diào)用的函數(shù). 當(dāng)程序通過(guò)調(diào)用exit()或從main 中返回時(shí), 參數(shù)function 所指定的函數(shù)會(huì)先被調(diào)用, 然后才真正由exit()結(jié)束程序. 參數(shù)arg 指針會(huì)傳給參數(shù)function函數(shù), 詳細(xì)情況請(qǐng)見(jiàn)范例.
返回值:如果執(zhí)行成功則返回0, 否則返回-1, 失敗原因存于errno 中.
范例
#include <stdlib.h> void my_exit(int status, void *arg) { printf("before exit()!\n"); printf("exit (%d)\n", status); printf("arg = %s\n", (char*)arg); } main() { char * str = "test"; on_exit(my_exit, (void *)str); exit(1234); }
執(zhí)行:
before exit()! exit (1234) arg = test
C語(yǔ)言atexit()函數(shù):設(shè)置程序正常結(jié)束前調(diào)用的函數(shù)
頭文件:
#include <stdlib.h>
定義函數(shù):
int atexit (void (*function) (void));
函數(shù)說(shuō)明:atexit()用來(lái)設(shè)置一個(gè)程序正常結(jié)束前調(diào)用的函數(shù). 當(dāng)程序通過(guò)調(diào)用exit()或從main 中返回時(shí), 參數(shù)function 所指定的函數(shù)會(huì)先被調(diào)用, 然后才真正由exit()結(jié)束程序.
返回值:如果執(zhí)行成功則返回0, 否則返回-1, 失敗原因存于errno 中.
范例
#include <stdlib.h> void my_exit(void) { printf("before exit () !\n"); } main() { atexit (my_exit); exit(0); }
執(zhí)行:
before exit()!
相關(guān)文章
C語(yǔ)言對(duì)堆排序一個(gè)算法思路和實(shí)現(xiàn)代碼
這篇文章主要介紹了C語(yǔ)言對(duì)堆排序一個(gè)算法思路和實(shí)現(xiàn)代碼,堆排序是一種樹(shù)形選擇排序,是對(duì)直接選擇排序的有效改進(jìn),需要的朋友可以參考下2014-06-06C++實(shí)現(xiàn)LeetCode(122.買(mǎi)股票的最佳時(shí)間之二)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(122.買(mǎi)股票的最佳時(shí)間之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C++類(lèi)的返回值是*this的成員函數(shù)問(wèn)題
這篇文章主要介紹了C++類(lèi)的返回值是*this的成員函數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11Cocos2d-x UI開(kāi)發(fā)之場(chǎng)景切換代碼實(shí)例
這篇文章主要介紹了Cocos2d-x UI開(kāi)發(fā)之場(chǎng)景切換代碼實(shí)例,cocos2d-x中的場(chǎng)景切換是通過(guò)導(dǎo)演類(lèi)調(diào)用相應(yīng)的方法完成的,本文通過(guò)代碼和詳細(xì)注釋來(lái)說(shuō)明,需要的朋友可以參考下2014-09-09C++實(shí)現(xiàn)LeetCode(142.單鏈表中的環(huán)之二)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(142.單鏈表中的環(huán)之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)源碼
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Qt 實(shí)現(xiàn)畫(huà)線筆鋒效果詳細(xì)原理及示例代碼
這篇文章主要介紹了Qt 實(shí)現(xiàn)畫(huà)線筆鋒效果詳細(xì)原理及示例代碼。文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04