最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux 中_exit和exit的區(qū)別

 更新時間:2017年03月07日 17:31:08   作者:viclee108  
這篇文章主要介紹了Linux 中_exit和exit的區(qū)別的相關(guān)資料,需要的朋友可以參考下

Linux 中_exit和exit的區(qū)別

在Linux的標準庫函數(shù)中,有一套稱作高級I/O的函數(shù),我們熟知的printf 、fopen 、fread 、fwrite都在此列,他們也被稱作緩沖I/O。其特征是對應每一個打開的文件,都存在一個緩沖區(qū), 在內(nèi)存中都有一片緩沖區(qū),每次讀文件會多讀若干條記錄,這樣下次讀文件時就可以直接從內(nèi)存的緩存中取出,每次寫文件時也僅僅是寫入到內(nèi)存的緩沖區(qū),等待滿足一定的條件(達到一定的數(shù)量,或者遇到特定字符,如換行和文件結(jié)束符EOF),再將緩沖區(qū)的內(nèi)容一次性的寫入文件,這樣就大大增加了文件讀寫的速度,但也為我們編程帶來了一點點麻煩,如果有些數(shù)據(jù),我們認為已經(jīng)寫入了文件,實際上因為沒有滿足特定的條件,他們還只是保存在緩沖區(qū)內(nèi),這時我們用_exit函數(shù)直接將程序關(guān)閉,緩沖區(qū)中的數(shù)據(jù)就會丟失,反之,如果向保證數(shù)據(jù)的完整性,就一定要使用exit函數(shù)。

exit()函數(shù)與_exit()函數(shù)最大的區(qū)別就在于exit()函數(shù)在調(diào)用exit系統(tǒng)調(diào)用之前要檢查文件的打開情況,把文件緩沖區(qū)中的內(nèi)容寫回文件,就是圖中的"清理I/O緩沖"一項。

exit()函數(shù)定義在stdlib.h中,而_exit()定義在unistd.h中。exit()和_exit()都用于正常終止一個函數(shù)。但_exit()直接是一個sys_exit系統(tǒng)調(diào)用,而exit()則通常是普通函數(shù)庫中的一個函數(shù)。它會先執(zhí)行一些清除操作,例如調(diào)用執(zhí)行各終止處理函數(shù)、關(guān)閉所有標準IO等,然后調(diào)用sys_exit。

    比如:

int main()
{ printf("this is a test function?。?!/n")
 printf("test exit ");
 exit(0);
}
int main()
{ printf("this is a test function?。。?n")
 printf("test exit");
 _exit(0);
}

這兩個程序,程序1輸出的是兩句話,而程序2只輸出了一句話。原因就是因為最后一句話上沒有加上特殊的字符,如換行和文件結(jié)束符,因為這個時候文件是存放在緩沖區(qū)的,這個例子中文件就是存放打開的顯示設(shè)備的緩沖區(qū)中的,因為輸出函數(shù)要寫入,首先要進行系統(tǒng)調(diào)用,這個時候系統(tǒng)會打開顯示設(shè)備的緩沖區(qū),而exit的作用就是結(jié)束,清理,就是說先檢查緩沖區(qū),把沒有寫入的數(shù)據(jù)寫入到文件,而_exit是立刻關(guān)閉文件,文件緩沖區(qū)的內(nèi)容也就消失了,這個時候就不可能再輸出到顯示設(shè)備了。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Linux 服務器同步 Rsync同步服務器文件

    Linux 服務器同步 Rsync同步服務器文件

    服務器之間常常要保持些文件或目錄的一致,比如一些大的軟件下載網(wǎng)站,它們通常使用多臺服 務器來提供下載服務。
    2009-08-08
  • Linux服務器實現(xiàn)文件實時同步的方法詳解

    Linux服務器實現(xiàn)文件實時同步的方法詳解

    在做系統(tǒng)集群部署時,常常會涉及到兩個或多個服務器之間文件同步,這篇文章主要來和大家介紹一下Linux服務器實現(xiàn)文件實時同步的方法,需要的可以參考下
    2024-03-03
  • Linux下NOGUI快速使用Jmeter的兩種實現(xiàn)方式

    Linux下NOGUI快速使用Jmeter的兩種實現(xiàn)方式

    文章介紹了在Linux環(huán)境下使用Jmeter進行無GUI測試的兩種快速啟動方法:直接下載安裝包啟動和使用docker啟動,詳細描述了每種方法的步驟,并強調(diào)了執(zhí)行命令和查看報告的過程
    2025-02-02
  • Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小內(nèi)存VPS服務器上的配置優(yōu)化

    Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小內(nèi)存VPS服務器上的

    VPS(全稱Virtual Private Server)是利用最新虛擬化技術(shù)在一臺物理服務器上創(chuàng)建多個相互隔離的虛擬私有主機。它們以最大化的效率共享硬件、軟件許可證以及管理資源。
    2008-12-12
  • Linux下的多線程編程實例解析

    Linux下的多線程編程實例解析

    這篇文章主要介紹了Linux下的多線程編程實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 分享服務器被入侵的處理過程

    分享服務器被入侵的處理過程

    這篇文章主要介紹了一次服務器被入侵的處理過程分享,下文中的給文件和目錄加鎖,是指給文件和目錄增加了一些屬性,只讀等,需要的朋友可以參考下
    2022-09-09
  • Linux如何利用iptables屏蔽某些域名

    Linux如何利用iptables屏蔽某些域名

    這篇文章主要介紹了Linux如何利用iptables屏蔽某些域名問題,具有很好的參考價值,希望對大家有所幫助,
    2023-09-09
  • Linux性能監(jiān)控工具nmon安裝及使用教程解析

    Linux性能監(jiān)控工具nmon安裝及使用教程解析

    這篇文章主要介紹了Linux性能監(jiān)控工具nmon安裝及使用教程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Linux進程和計劃任務管理方式

    Linux進程和計劃任務管理方式

    程序是存儲在存儲設(shè)備上的靜態(tài)代碼,而進程是程序在CPU和內(nèi)存中動態(tài)執(zhí)行的實體,進程可以有父子關(guān)系,查看進程信息的命令包括ps,top,pgrep,jobs,pstree等,用于監(jiān)控和管理進程狀態(tài),ps命令可以顯示終端的所有進程
    2024-09-09
  • Linux使用less高效讀取GC日志的實現(xiàn)方法

    Linux使用less高效讀取GC日志的實現(xiàn)方法

    在Linux環(huán)境中,日志分析是運維和開發(fā)人員日常工作中不可或缺的一部分,特別是對于Java應用的垃圾回收(GC)日志,本文將結(jié)合實際案例,詳細講解如何使用 less 命令高效讀取和分析GC日志,需要的朋友可以參考下
    2025-04-04

最新評論

宜章县| 根河市| 彭山县| 肥东县| 二连浩特市| 揭阳市| 竹北市| 枣强县| 宝鸡市| 景东| 神池县| 霞浦县| 郧西县| 保康县| 凭祥市| 壤塘县| 吐鲁番市| 容城县| 福贡县| 孝感市| 寻乌县| 渭源县| 团风县| 玉田县| 南涧| 洛南县| 乐山市| 庆安县| 历史| 南郑县| 贵溪市| 永福县| 嘉兴市| 措勤县| 苗栗市| 松原市| 义乌市| 曲麻莱县| 济源市| 华阴市| 大埔区|