exit 和 exit 的區別

2022-08-12 08:54:19 字數 620 閱讀 6549

cc 4.0 by-sa 

1._exit()執行後會立即返回給核心,而exit()要先執行一些清除操作,然後將控制權交給核心。

2.呼叫_exit()函式時,其會關閉程序所有的檔案描述符,清理記憶體,以及其他一些核心清理函式,但不會重新整理流(stdin 、stdout、stderr……)。exit()函式是在_exit()函式上的乙個封裝,它會呼叫_exit,並在呼叫之前先重新整理流。

3.exit()函式與_exit()函式最大的區別就在於,exit()函式在呼叫exit系統之前要檢查檔案的開啟情況,把檔案緩衝區的內容寫回檔案。

注:由於linux的標準函式庫中,有一種操作稱作「緩衝i/o」的操作,其特徵就是對應每乙個開啟的檔案,在記憶體中都有一片緩衝區。在每次讀檔案時,會連續地讀出若干條記錄,這樣在下次讀檔案時就可以直接從記憶體的緩衝區讀取;同樣,在每次寫檔案時也僅僅是寫入記憶體的緩衝區,等滿足了一定的條件(如達到了一定數量或遇到特定字元等),再將緩衝區中的內容的內容一次性寫入檔案。這種技術大大提高了檔案讀寫的速度,但也給程式設計帶來了一點麻煩。例如,有一些資料,認為已經寫入了檔案,實際上因為沒有滿足特定的條件,它們只是儲存在緩衝區內,這時用_exit()函式直接將程序關閉,緩衝區的資料將丟失。因此,要想保證資料的完整性,就一定要使用exit()函式。      

exit和exit的區別?

exit終止呼叫程序,但不關閉檔案,不清除輸出快取,也不呼叫出口函式。exit函式將終止呼叫程序。在退出程式之前,所有檔案關閉,緩衝輸出內容 將重新整理定義,並呼叫所有已重新整理的 出口函式 由atexit定義 作為系統呼叫而言,exit和exit是一對孿生兄弟,它們究竟相似到什麼程度,我們可以從l...

exit和exit的區別

在linux的標準庫函式中,有一套稱作高階i o的函式,我們熟知的printf fopen fread fwrite都在此列,他們也被稱作緩衝 i o。其特徵是對應每乙個開啟的檔案,都存在乙個緩衝區,在記憶體中都有一片緩衝區,每次讀檔案會多讀若干條記錄,這樣下次讀檔案時就可以直接從記憶體的快取中取出...

exit 和 exit 的區別

exit 和 exit 的效果都是讓程式退出執行,而 exit 用來 盡快 退出。先說一下atexit 函式。我們可以用atexit 註冊乙個或多個函式退出清理函式 或者on exit 但這個函式不建議用 這些清理函式按照註冊時的反順序,在exit 或main函式return時被呼叫。include...