當我們要退出乙個程序的時候,我們可以使用exit()和_exit(),那麼它們之間到底有什麼區別呢?1.exit()是c標準庫函式,而_exit()是linux系統呼叫
2.呼叫exit()之後,程序退出,申請的空間被釋放,同時釋放核心中的各種資料結構(pcb),並檢查檔案的開啟情況,將記憶體緩衝區中的資料寫入到檔案中;而呼叫_exit()之後,檔案緩衝區中的資料不會寫入到檔案中,造成資料的丟失
下面我們來看兩個例子:
(1)使用_exit()
#include#includeint main()
fwrite(str,5,1,f);
_exit(1);
return 0;
}執行程式之後,開啟檔案aaa.txt,可以發現aaa.txt中沒有寫入的內容,原因是使用_exit()退出程序的時候並沒有將緩衝區中的資料寫入到檔案中
(2)使用exit()
#include#includeint main()
fwrite(str,5,1,f);
exit(1);
return 0;
}執行程式之後,開啟檔案aaa.txt,可以發現aaa.txt中寫入了內容,原因是使用exit()退出程序的時候將緩衝區中的資料寫入到檔案中
exit 與 exit 的區別
從圖中可以看出,exit 函式的作用是 直接使程序停止執行,清除其使用的記憶體空間,並清除其在核心的各種資料結構 exit 函式則在這些基礎上做了一些小動作,在執行退出之前還加了若干道工序。exit 函式與 exit 函式的最大區別在於exit 函式在呼叫exit 系統呼叫前要檢查檔案的開啟情況,把...
exit 與 exit 的區別
從圖中可以看出,exit 函式的作用是 直接使程序停止執行,清除其使用的記憶體空間,並清除其在核心的各種資料結構 exit 函式則在這些基礎上做了一些小動作,在執行退出之前還加了若干道工序。exit 函式與 exit 函式的最大區別在於exit 函式在呼叫exit 系統呼叫前要檢查檔案的開啟情況,把...
linux下exit 與 exit 的區別
void exit int staus 函式,在標頭檔案 include void exit int status 函式,在標頭檔案 include 中 在linux c中描述兩者區別是 exit返回後直接返回核心,而exit要進行清除工作,那麼兩者到底有什麼不同呢。編寫個小程式就很容易看出來 in...