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