exit
exit
在头文件 | | |
---|---|---|
void exit(int exit_code); | | (直到C11) |
_Noreturn void exit(int exit_code); | | (自C11以来) |
导致正常程序终止发生。
执行几个清理步骤:
- 传递给atexit的函数被调用,按照注册的相反顺序
注意
用at_quick_exit注册的函数不会被调用。
如果一个程序多次调用exit或者调用exit和quick_exit,则行为是不确定的。
如果在调用使用atexit注册的函数期间,行为是不确定的,函数将以longjmp退出。
从主函数返回,通过返回语句或到达函数结尾,执行exit(),将return语句的参数(如果使用隐式返回,则返回0)作为exit_code。
参数
exit_code | - | 退出程序的状态 |
---|
返回值
(none).
例
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp = fopen("data.txt","r"
if (fp == NULL) {
fprintf(stderr, "error opening file data.txt in function main()\n"
exit(1
}
fclose(fp
printf("Normal Return\n"
}
输出:
error opening file data.txt in function main()
参考
- C11标准(ISO / IEC 9899:2011):
扩展内容
abort | 导致程序异常终止(不清除)(功能) |
---|---|
atexit | 注册要在exit()调用(函数)上调用的函数 |
quick_exit(C11) | 导致正常程序终止而没有完全清理(功能) |
| 用于退出的C ++文档|