日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于return和exit

發布時間:2025/5/22 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于return和exit 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

    關于return和exit

  在子進程退出的時候有兩種方式,exit和exec族函數,不能使用return,為什么不能用return呢,exit改成return 會出現父子進程又各自重復開始進行。

  1、exit函數和return函數的主要區別是:

?

  1)exit用于在程序運行的過程中隨時結束程序,其參數是返回給OS的。也可以這么講:exit函數是退出應用程序,并將應用程序的一個狀態返回給OS,這個狀態標識了應用程序的一些運行信息。

?

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

?

  exit是系統調用級別的,它表示了一個進程的結束,它將刪除進程使用的內存空間,同時把錯誤信息返回父進程。通常情況:exit(0)表示程序正常, exit(1)和exit(-1)表示程序異常退出,exit(2)表示系統找不到指定的文件。在整個程序中,只要調用exit就結束。?

?

  2)return是語言級別的,它表示了調用堆棧的返回;return是返回函數值并退出函數,通常0為正常退出,非0為非正常退出,請注意,如果是在主函數main, 自然也就結束當前進程了(也就是說,在main()里面,你可以用return n,也能夠直接用exit(n)來做),如果不是在main函數中,那就是退回上一層調用。在多個進程時,如果有時要檢測上個進程是否正常退出,就要用到上個進程的返回值。

?

?

  2、進程環境與進程控制

?

  exit(int n)其實就是直接退出程序,因為默認的標準程序入口為 int main(int argc, char** argv),返回值是int型的。一般在shell下面,運行一個程序,然后使用命令echo $?就能得到該程序的返回值,也就是退出值。

?

  理論上exit可以返回小于256的任何整數,返回的不同數值主要是給調用者作不同處理的。

?

  對于單獨的進程exit的返回值是返回給操作系統的,但如果是多進程,則是返回給父進程的。父進程里面調用waitpid()等函數得到子進程退出的狀態,以便作不同處理。根據相應的返回值來讓調用者作出相應的處理。

?

  總的說來,exit()就是當前進程把其控制權返回給調用該子程序的主程序, 括號里的是返回值,告訴調用程序該程序的運行狀態。

??

  1)進程的開始:

?

  C程序是從main函數開始執行, 原型如下: int main(int argc, char *argv[]); 通常main的返回值是int型, 正確返回0。

??

  2)進程終止:

?

  C程序的終止分為兩種: 正常終止和異常終止。正常終止分為: return, exit, _exit, _Exit, pthreade_exit。異常中指分為: abort, SIGNAL, 線程響應取消。

?

轉載于:https://www.cnblogs.com/guochuanrui/p/5613909.html

總結

以上是生活随笔為你收集整理的关于return和exit的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。