quick_exit函数
概要:
#include <stdlib.h> _Noreturn void quick_exit(int status);
描述:
该函数正常终止程序执行。
通过atexit函数注册的函数以及通过signal函数注册的信号处理函数不会被调用。如果一个程序多次调用quick_exit函数或者除了调用quick_exit函数外,还调用了exit函数,程序行为是未定义的。如果quick_exit函数执行时引发信号,其行为是未定义的。
调用quick_exit函数,会经过以下2个步骤:
1、所有通过at_quick_exit函数注册的函数将会按注册顺序逆顺调用;
如果at_quick_exit函数调用发生在quick_exit函数之后,at_quick_exit函数能否调用成功ISO/IEC 9899:2018标准未作明确说明。如果在调用此类函数的过程中,调用了终止注册函数调用的longjmp函数,其行为是未定义的。
2、通过调用_Exit(status)函数将控制权返还给宿主环境。
如果参数status的值为0或者EXIT_SUCCESS,返回成功终止状态的实现定义形式;如果参数status的值为EXIT_FAILURE,返回不成功终止状态的实现定义形式;否则返回状态由实现定义。
程序终止时,未写入的缓冲数据是否刷新、打开的流是否关闭以及临时文件是否删除将由实现定义。
参数:
int status
状态代码,说明程序的退出状态。
返回值:
函数不会返回给调用者。
范例:
|
|
结果:
假设名为abc.txt的文件不存在,将输出:
Error opening file: no such file or directory
然后调用quick_exit(EXIT_FAILURE)函数终止程序。
假设名为abc.txt的文件存在,将调用quick_exit(EXIT_SUCCESS)函数终止程序。
注:使用Pelles C编译。
相关内容:
abort | 异常终止程序的函数。 |
_Exit | 正常终止程序的函数。 |
exit | 正常终止程序的函数。 |