abort

abort

在头文件中定义
void abort(void);(直到C11)
_Noreturn void abort(void);(自C11以来)

除非SIGABRT被传递给signal的信号处理程序捕获并且处理程序不返回,否则会导致程序异常终止。

传递给atexit()的函数不会被调用。 是否关闭文件等开放资源是实现定义的。 实现定义的状态返回到指示不成功执行的主机环境。

参数

(none).

返回值

(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" abort( } /* Normal processing continues here. */ fclose(fp printf("Normal Return\n" return 0; }

输出:

error opening file data.txt in function main()

参考

  • C11标准(ISO / IEC 9899:2011):

扩展内容

exit 导致正常程序终止并清理(功能)
atexit对注册要在exit()调用(函数)上调用的函数
quick_exit(C11)导致正常程序终止而没有完全清理(功能)

| 用于中止的C ++文档|