_cexit_c_exit

执行清理操作并返回,而不终止进程。

语法

void _cexit( void );
void _c_exit( void );

备注

_cexit 函数以后进先出 (LIFO) 顺序调用由 atexit_onexit.注册的函数。 然后,_cexit 刷新所有 I/O 缓冲区并在返回前关闭所有打开的流。 _c_exit_exit 相同,但前者返回到调用进程,而无需处理 atexit_onexit 或刷新流缓冲区。 下表中显示了 exit_exit_cexit_c_exit 的行为。

函数 行为
exit 执行完整的 C 库终止过程,终止进程,并使用提供的状态代码退出。
_exit 执行快速的 C 库终止过程,终止进程,并使用提供的状态代码退出。
_cexit 执行完整的 C 库终止过程并返回给调用方,但不中止进程。
_c_exit 执行快速的 C 库终止过程并返回给调用方,但不中止进程。

调用 _cexit_c_exit 函数时,不会调用在调用时存在的任何临时或自动对象的析构函数。 自动对象是在对象未声明为静态的函数中进行定义的对象。 临时对象是由编译器创建的对象。 若要在调用 _cexit_c_exit 之前销毁自动对象,请显式调用该对象的析构函数,如下所示:

myObject.myClass::~myClass( );

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态

要求

例程 必需的标头
_cexit <process.h>
_c_exit <process.h>

有关兼容性的详细信息,请参阅 兼容性

另请参阅

进程和环境控制
abort
atexit
_exec_wexec 函数
exit_Exit_exit
_onexit_onexit_m
_spawn_wspawn 函数
system_wsystem