Exit()

Exit()

exit() 是電腦函式

exit()通常是用在子程式中用來終結程式用的,使用後程式自動結束,跳回作業系統。

exit(0) 表示程式正常退出,exit⑴/exit(-1)表示程式異常退出。

exit() 結束當前進程/當前程式/,在整個程式中,只要調用 exit ,就結束。

基本介紹

  • 中文名:exit()
  • 函式名:exit()
  • 所在頭檔案:stdlib.h
  • 用法: void exit(int status);
  • 參 數: status //程式退出的返回值.
函式用法,程式簡例,退出過程,

函式用法

函式名: exit()
所在頭檔案:stdlib.h(如果是”VC6.0“的話頭檔案為:windows.h)
功 能: 關閉所有檔案,終止正在執行的進程。
exit(0)表示正常退出,
exit(x)(x不為0)都表示異常退出,這個x是返回給作業系統(包括UNIX,Linux,和MS DOS)的,以供其他程式使用。
stdlib.h: void exit(int status);//參 數status,程式退出的返回值

程式簡例

#include<stdlib.h>#include<conio.h>#include<stdio.h>int main(int argc,char*argv[]){int status;printf("Enter either 1 or 2\n");status=getch();/*Sets DOS error level*/exit(status-'0');/*Note:this line is never reached*/return 0;}
exit()和return的區別:
按照ANSI C,在最初調用的main()中使用return和exit()的效果相同。
但要注意這裡所說的是“最初調用”。如果main()在一個遞歸程式中,exit()仍然會終止程式;但return將
控制權移交給遞歸的前一級,直到最初的那一級,此時return才會終止程式。return和exit()的另一個區別
在於,即使在除main()之外的函式中調用exit(),它也將終止程式。
_exit()與exit的區別:
頭檔案:
exit:#include<stdlib.h>
_exit:#include<unistd.h>
_exit()函式:直接使進程停止運行,清除其使用的記憶體空間,並銷毀其在核心中的各種數據結構;
exit()函式則在這些基礎上作了一些包裝,在執行退出之前加了若干道工序。
exit()函式與_exit()函式最大的區別就在於 exit()函式在調用 exit 系統調用之前要檢查檔案的打開情況,把檔案緩衝區中的內容寫回檔案。
man 3 exit
The C standard specifies two constants, EXIT_SUCCESS and EXIT_FAILURE, that may be passed to exit() to indicate
successful or unsuccessful termination, respectively.
註:exit()就是退出,傳入的參數是程式退出時的狀態碼,0表示正常退出,其他表示非正常退出,一般都用-1或者1,標準C里有EXIT_SUCCESS和EXIT_FAILURE兩個宏,用exit(EXIT_SUCCESS);

退出過程


1.調用atexit()註冊的函式(出口函式);按ATEXIT註冊時相反的順序調用所有由它註冊的函式,這使得我們可以指定在程式終止時執行自己的清理動作.例如,保存程式狀態信息於某個檔案,解開對共享資料庫上的鎖等.
2.cleanup();關閉所有打開的流,這將導致寫所有被緩衝的輸出,刪除用TMPFILE函式建立的所有臨時檔案.
3.最後調用_exit()函式終止進程。
_exit做3件事(man):
1,Any open file descriptors belonging to the process are closed
2,any children of the process are inherited by process 1, init
3,the process's parent is sent a SIGCHLD signal
exit執行完清理工作後就調用_exit來終止進程。

相關詞條

熱門詞條

聯絡我們