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 ++文档|