a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

詳細(xì)解析exit和atexit的區(qū)別

2020-02-24 14:28:19
字體:
供稿:網(wǎng)友

在程序中,最多可以向ATEXIT注冊(cè)32個(gè)處理函數(shù),這些處理函數(shù)的調(diào)用順序與注冊(cè)順序相反,下文是武林技術(shù)頻道小編為大家介紹的詳細(xì)解析exit和atexit的區(qū)別,希望對(duì)你學(xué)習(xí)這方面知識(shí)有所幫助!

一、exit()函數(shù)
函數(shù)聲明:
void exit(int state);
exit()函數(shù)用于在程序運(yùn)行的過程中隨時(shí)結(jié)束程序,exit的參數(shù)state是返回給操作系統(tǒng),返回0表示程序正常結(jié)束,非0表示程序非正常結(jié)束。main函數(shù)結(jié)束時(shí)也會(huì)隱式地調(diào)用exit函數(shù)。exit函數(shù)運(yùn)行時(shí)首先會(huì)執(zhí)行由atexit()函數(shù)登記的函數(shù),然后會(huì)做一些自身的清理工作,同時(shí)刷新所有輸出流、關(guān)閉所有打開的流并且關(guān)閉通過標(biāo)準(zhǔn)I/O函數(shù)tmpfile()創(chuàng)建的臨時(shí)文件。

二、atexit()函數(shù)
函數(shù)聲明:
int atexit(void (*func)(void));?
很多時(shí)候我們需要在程序退出的時(shí)候做一些諸如釋放資源的操作,但程序退出的方式有很多種,比如main()函數(shù)運(yùn)行結(jié)束、在程序的某個(gè)地方用exit()結(jié)束程序、用戶通過Ctrl+C或Ctrl+break操作來終止程序等等,因此需要有一種與程序退出方式無關(guān)的方法來進(jìn)行程序退出時(shí)的必要處理。方法就是用atexit()函數(shù)來注冊(cè)程序正常終止時(shí)要被調(diào)用的函數(shù)。

atexit()函數(shù)的參數(shù)是一個(gè)函數(shù)指針,函數(shù)指針指向一個(gè)沒有參數(shù)也沒有返回值的函數(shù)。atexit()的函數(shù)原型是:int atexit (void (*)(void));

在一個(gè)程序中最多可以用atexit()注冊(cè)32個(gè)處理函數(shù),這些處理函數(shù)的調(diào)用順序與其注冊(cè)的順序相反,也即最先注冊(cè)的最后調(diào)用,最后注冊(cè)的最先調(diào)用。

下面是一段代碼示例:

?

#include <stdlib.h> // 使用atexit()函數(shù)所必須包含的頭文件stdlib.h
#include <iostream.h>

?

void terminateTest()
{
??? cout<<"程序正在結(jié)束..."<<endl;
}

int main(void)
{
??? // 注冊(cè)退出處理函數(shù)
??? atexit(terminateTest);

??? cout<<"the end of main()"<<endl;

??? return 0;
}


程序的運(yùn)行結(jié)果為:
the end of main()
程序正在結(jié)束...

?

這些函數(shù)都是在main結(jié)束以后才被調(diào)用的。atexit只是注冊(cè)他們,使得他們?cè)趍ain結(jié)束以后被調(diào)用,看名字就可以看出來。

atexit這個(gè)玩意超有用,可以按照你予設(shè)的順序摧毀全局變量(類),例如有個(gè)log類,你在其它的全局類里也有可能調(diào)用到Log類寫日志。所以log類必須最后被析構(gòu)。假如沒有規(guī)定析構(gòu)順序,那么程序在退出時(shí)將有可能首先析構(gòu)log類,那么其它的全局類在此時(shí)將無法正確寫日志。
把數(shù)據(jù)寫回文件, 刪除臨時(shí)文件, 這才是真正有用的.

上面就是武林技術(shù)頻道小編給大家介紹的詳細(xì)解析exit和atexit的區(qū)別,這些知識(shí)都是非常值得我們?nèi)W(xué)習(xí)的,希望這篇文章能夠幫助到你們。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 国产精品一区二区在线 | 韩国毛片在线 | 精品国内视频 | 一级在线观看 | 国产在线免费 | 亚洲第一精品在线 | 久草在线在线精品观看 | 91精品久久久久久久 | 黄色在线免费观看视频网站 | 色综合天天天天做夜夜夜夜做 | 特级淫片女子高清视频在线观看 | 欧美午夜精品一区二区三区电影 | 国产精品久久久久久久久久久久冷 | 99久久婷婷国产精品综合 | 一区二区三区 在线 | 免费看的黄色网 | 午夜精品久久久久久久久久久久久 | 一区二区日韩 | 亚洲欧美日韩另类精品一区二区三区 | 日韩性猛交 | 欧美日韩视频一区二区三区 | 国产成人免费在线视频 | 欧美色性 | 欧美在线播放一区 | 国产精品久久久久毛片软件 | 日韩精品免费在线视频 | 国产精品久久久久久久久久妞妞 | 日本午夜在线 | av网站在线免费观看 | 亚洲国产视频网站 | 99热在线国产 | 一区二区三区四区在线视频 | 日韩一区二区三区四区五区 | 午夜久久 | 久久91精品久久久久久9鸭 | 操片 | av一级久久 | 在线欧美一区 | 在线观看国产 | 国产精品视频免费 | 国产97免费视频 |