quick_exit
函数 <cstdlib>
C11 |
_Noreturn void quick_exit (int status); |
C++11 |
noreturn void quick_exit (int status) noexcept; |
快速终止调用的进程
在调用所有使用
at_quick_exit注册的函数后,将控制权返回给宿主环境,从而正常终止进程。
不执行额外的清理任务:
不调用对象析构函数。对于C 流 是否被关闭和/或刷新,以及使用
tmpfile打开的文件是否被删除,取决于特定的系统或库实现。
如果status为0或
EXIT_SUCCESS,则返回主机环境成功终止状态。
如果status为
EXIT_FAILURE,则返回主机环境一个不成功的终止状态。
否则,返回的状态取决于系统和库实现.
如果一个程序同时调用
exit和quick_exit,或者多次调用quick_exit,它将导致未定义的行为。
☲ 参数
status
状态码。
如果该值为0或
EXIT_SUCCESS,表示成功。
EXIT_FAILURE表示失败。
☉ 返回值
None(函数永不返回)。
☣ 示例
/* quick_exit example */
#include <stdio.h> /* puts */
#include <stdlib.h> /* at_quick_exit, quick_exit, EXIT_SUCCESS */
void fnQExit (void)
{
puts ("Quick exit function.");
}
int main ()
{
at_quick_exit (fnQExit);
puts ("Main function: Beginning");
quick_exit (EXIT_SUCCESS);
puts ("Main function: End"); // never executed
return 0;
}
|
输出:
Main function: Beginning
Quick exit function.
↭ 数据竞争
同时多次调用该函数没有效果。
对
at_quick_exit的调用如果在调用该函数之前没有完成,可能不会成功(取决于特定的库实现).
❆ 异常(c++)
无抛出保证:此函数从不抛出异常。
如果在
at_quick_exit中注册的任何函数抛出异常,将自动调用terminate。
🍄 另请参阅