學習exit--筆記記錄

exit函數

exit用於在程序運行的過程中隨時結束程序,exit的參數是返回給OS的。main函數結束時也會隱式地調用exit函數。

  • exit函數運行時首先會執行由atexit()函數登記的函數,然後會做一些自身的清理工作,同時刷新所有輸出流、關閉所有打開的流並且關閉通過標準I/O函數tmpfile()創建的臨時文件。

  • exit是結束一個進程,它將刪除進程使用的內存空間,同時把錯誤信息返回父進程;而return是返回函數值並退出函數。

  • 通常情況:exit(0)表示程序正常, exit(1)和exit(-1)表示程序異常退出,exit(2)表示表示系統找不到指定的文件。在整個程序中,只要調用exit就結束(當前進程或者在main時候爲整個程序)。

exit和return的區別

  1. return是語言級別的,它表示了調用堆棧的返回;return( )是當前函數返回,當然如果是在主函數main, 自然也就結束當前進程了,如果不是,那就是退回上一層調用。在多個進程時。如果有時要檢測上個進程是否正常退出。就要用到上個進程的返回值,依次類推。而exit是系統調用級別的,它表示了一個進程的結束。

  2. exit函數是退出應用程序,並將應用程序的一個狀態返回給OS,這個狀態標識了應用程序的一些運行信息。

進程環境與進程控制

exit(int n)其實就是直接退出程序,因爲默認的標準程序入口爲 int main(int argc, char** argv),返回值是int型的。

一般在shell下面,運行一個程序,然後使用命令echo $?就能得到該程序的返回值,也就是退出值,在main()裏面,你可以用return n,也能夠直接用exit(n)來做。

unix默認的正確退出是返回0,錯誤返回非0。理論上exit可以返回小於256的任何整數。返回的不同數值主要是給調用者作不同處理的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章