exit 0 與exit 1)return的區別

2021-10-24 13:54:36 字數 777 閱讀 6371

exit(0):正常執行程式並退出程式;

exit(1):非正常執行導致退出程式;

return():返回函式,若在主函式中,則會退出函式並返回一值。

詳細說:

1. return返回函式值,是關鍵字;  exit 是乙個函式。

2. return是語言級別的,它表示了呼叫堆疊的返回;而exit是系統呼叫級別的,它表示了乙個程序的結束。

3. return是函式的退出(返回);exit是程序的退出。

4. return是c語言提供的,exit是作業系統提供的(或者函式庫中給出的)。

5. return用於結束乙個函式的執行,將函式的執行資訊傳出個其他呼叫函式使用;exit函式是退出應用程式,刪除程序使用的記憶體空間,並將應用程式的乙個狀態返回給os,這個狀態標識了應用程式的一些執行資訊,這個資訊和機器和作業系統有關,一般是 0 為正常退出, 非0 為非正常退出。

6. 非主函式中呼叫return和exit效果很明顯,但是在main函式中呼叫return和exit的現象就很模糊,多數情況下現象都是一致的。

exit(0)與exit(1)對你的程式來說,沒有區別。對使用你的程式的人或者程式來說,區別可就大了。

一般來說,exit 0 可以告知你的程式的使用者:你的程式是正常結束的。如果 exit 非 0 值,那麼你的程式的使用者通常會認為你的程式產生了乙個錯誤。

以 shell 為例,在 shell 中呼叫完你的程式之後,用 echo $? 命令就可以看到你的程式的 exit 值。在 shell 指令碼中,通常會根據上乙個命令的 $? 值來進行一些流程控制。

Shell 關於exit 0的那些坑

在 shell 程式設計中,需慎用 exit 0!首先必須弄清楚 exit 0 不是 return 0,區別在於 return 0 用於函式中,表示函式執行成功返回 0 而 exit 0 則代表你當前程式執行成功並且會直接退出當前所執行的指令碼或者程式,相反,return 1 一般表示函式執行失敗返...

exit與return的區別

一直沒有太留意這兩者的區別,但是在看unix網路程式設計的時候遇到問題了,我很疑惑,書中很多的系統呼叫都被作者替換成了包裹函式,而這些包裹函式最後都是呼叫了乙個統一的錯誤處理函式,結構如下,我很奇怪為什麼呼叫包裹函式之後程式會直接退出,按我理解應該用exec直接替換掉主調函式才能使其終結。這裡的癥結...

return與exit 的區別

return 返回函式值,是關鍵字 很明顯,exit 是乙個函式。return 語言提供的,是語言級別的,它表示了呼叫堆疊的返回,是函式的退出 返回 而exit 是作業系統提供的 或者函式庫中給出的 是系統呼叫級別的,它表示了乙個程序的結束。exit 退出程式 把控制權交給作業系統 return 結...