exit、_exit
結束呼叫的流程:exit 在清除之後結束它; _exit 直接終止它。
注意事項 |
---|
除非是測試或偵錯的狀況,否則不要使用這個方法關閉 Windows 市集 應用程式。根據 Windows 8 應用程式認證需求的章節 3.6,不允許以程式設計或 UI 方式關閉 Windows 市集 應用程式。如需詳細資訊,請參閱應用程式週期 (Windows 市集應用程式)。 |
void exit(
int status
);
void _exit(
int status
);
參數
- status
結束狀態。
備註
exit 和 _exit 函式結束呼叫程序。 exit呼叫由 atexit 和 _onexit註冊的後進先出 (LIFO) 順序的函式 ,然後在終止程序前清除所有檔案緩衝區。 _exit 終止處理序,而未處理 atexit 或 _onexit ,也不清除資料流緩衝區。 通常, status 值設定為 0 表示正常結束或設定為其他值表示錯誤。
雖然 exit 和 _exit 呼叫不傳回值,低位位元組 status 用來等候呼叫程序,如果有的話,會在呼叫處理序結束之後。 status 值為作業系統的批次命令 ERRORLEVEL 可和由其中一個常數表示: EXIT_SUCCESS,表示值為 0,或 EXIT_FAILURE,表示值為 1。 exit、 _exit、 _cexit和 _c_exit 表現行為如下。
Function |
描述 |
---|---|
exit |
執行完成 C 程式庫結束程序,終止處理序,然後用提供的狀態碼關閉。 |
_exit |
執行快速 C 程式庫結束程序,終止處理序,然後用提供的狀態碼關閉。 |
_cexit |
執行完成 C 程式庫結束程序並傳回至呼叫端,但是不會結束處理序。 |
_c_exit |
執行快速 C 程式庫結束程序並傳回至呼叫端,但是不會結束處理序。 |
當您呼叫 exit 或 _exit 函式時,呼叫存在的任何暫時或自動物件的解構函式不會呼叫。 自動物件被定義為一個物件未被宣告靜態的函式。 暫存物件是由編譯器所建立的物件。 若要終結自動物件,在呼叫 exit 或 _exit之前,請明確地呼叫物件的解構函式,如下所示:
myObject.myClass::~myClass();
請不要使用 DLL_PROCESS_ATTACH 呼叫 DllMain的 exit 。 如果您要關閉 DLLMain 函式,請從 DLL_PROCESS_ATTACH傳回 FALSE 。
需求
Function |
必要的標頭 |
---|---|
exit |
<process.h> 或 <stdlib.h> |
_exit |
<process.h> 或 <stdlib.h> |
如需其他相容性資訊,請參閱 相容性。
範例
// crt_exit.c
// This program returns an exit code of 1. The
// error code could be tested in a batch file.
#include <stdlib.h>
int main( void )
{
exit( 1 );
}
.NET Framework 對等用法
System::Diagnostics::Process::Kill