簡要對(duì)比C語言中三個(gè)用于退出進(jìn)程的函數(shù)
C語言_exit()函數(shù):結(jié)束進(jìn)程執(zhí)行
頭文件:
#include <unistd.h>
定義函數(shù):
void _exit(int status);
函數(shù)說明:_exit()用來立刻結(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).
附加說明:_exit ()不會(huì)處理標(biāo)準(zhǔn)I/O 緩沖區(qū), 如要更新緩沖區(qū)請(qǐng)使用exit ().
C語言on_exit()函數(shù):設(shè)置程序正常結(jié)束前調(diào)用的函數(shù)
頭文件:
#include <stdlib.h>
定義函數(shù):
int on_exit(void (* function) (int void*), void *arg);
函數(shù)說明:on_exit()用來設(shè)置一個(gè)程序正常結(jié)束前調(diào)用的函數(shù). 當(dāng)程序通過調(diào)用exit()或從main 中返回時(shí), 參數(shù)function 所指定的函數(shù)會(huì)先被調(diào)用, 然后才真正由exit()結(jié)束程序. 參數(shù)arg 指針會(huì)傳給參數(shù)function函數(shù), 詳細(xì)情況請(qǐng)見范例.
返回值:如果執(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語言atexit()函數(shù):設(shè)置程序正常結(jié)束前調(diào)用的函數(shù)
頭文件:
#include <stdlib.h>
定義函數(shù):
int atexit (void (*function) (void));
函數(shù)說明:atexit()用來設(shè)置一個(gè)程序正常結(jié)束前調(diào)用的函數(shù). 當(dāng)程序通過調(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語言對(duì)堆排序一個(gè)算法思路和實(shí)現(xiàn)代碼
這篇文章主要介紹了C語言對(duì)堆排序一個(gè)算法思路和實(shí)現(xiàn)代碼,堆排序是一種樹形選擇排序,是對(duì)直接選擇排序的有效改進(jìn),需要的朋友可以參考下2014-06-06
C++實(shí)現(xiàn)LeetCode(122.買股票的最佳時(shí)間之二)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(122.買股票的最佳時(shí)間之二),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
Cocos2d-x UI開發(fā)之場景切換代碼實(shí)例
這篇文章主要介紹了Cocos2d-x UI開發(fā)之場景切換代碼實(shí)例,cocos2d-x中的場景切換是通過導(dǎo)演類調(diào)用相應(yīng)的方法完成的,本文通過代碼和詳細(xì)注釋來說明,需要的朋友可以參考下2014-09-09
C++實(shí)現(xiàn)LeetCode(142.單鏈表中的環(huán)之二)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(142.單鏈表中的環(huán)之二),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
Qt 實(shí)現(xiàn)畫線筆鋒效果詳細(xì)原理及示例代碼
這篇文章主要介紹了Qt 實(shí)現(xiàn)畫線筆鋒效果詳細(xì)原理及示例代碼。文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

