执行清理操作并返回,而不终止进程。
语法
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 函数
.- .
%>
_spawn、_wspawn 函数
%>