exit, _exit

exit 停止对清理之后处理;_exit 立即停止它。

备注

不要使用此方法关闭但在测试的 Windows 应用商店 app,或调试方案。以编程方式或 UI 方法结束 Windows 应用商店 app 不根据第 3.6 部分允许的。windows 8 个 app 身份验证要求有关更多信息,请参见 应用程序在段 (windows 中 apps)

void exit( 
   int status 
);
void _exit( 
   int status 
);

参数

  • status
    退出状态。

备注

exit 和 _exit 函数终止进程调用。 调用 atexit 和 _onexit注册的后进先出 (LIFO) 的顺序函数的exit,然后删除所有文件缓冲区,在终止处理之前。 _exit 终止进程,不处理 atexit 或 _onexit,也不刷新流缓冲区。 通常,status 值设置为 0 指示正常退出或设置到某些其他值指示错误。

虽然 exit 和 _exit 调用不希望返回值,低位字节 status 可用于等待的调用过程,因此,如果一个存在,则,在调用进程退出后。 status 值对操作系统的批处理命令 ERRORLEVEL 可用并且由两个常数表示之一:EXIT_SUCCESS,表示值为 0,或 EXIT_FAILURE表示,值 1。 exit、_exit、_cexit和 _c_exit 如下行为。

功能

描述

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。

要求

功能

必需的标头

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

请参见

参考

处理和环境控件

abort

atexit

_cexit, _c_exit

_exec, _wexec功能

_onexit, _onexit_m

_spawn, _wspawn功能

system, _wsystem