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