abort_C语言中文网
| 定义于头文件 |
||
| void abort(void); |
(C11 前) | |
| _Noreturn void abort(void); |
(C11 起) | |
导致程序异常终止,除非传递给 signal 的信号处理函数正在捕捉 SIGABRT ,而该处理函数不返回。
不调用传递给 atexit() 的函数。是否关闭打开的资源,例如文件,是实现定义的。向宿主环境返回指示不成功执行的实现定义状态。
参数
(无)
返回值
(无)
注意
POSIX 指定 abort() 函数撤除阻塞,或忽略 SIGABRT 信号。
示例
#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(); } /* 正常处理持续至此。 */ fclose(fp); printf("Normal Return\n"); return 0; }
输出:
error opening file data.txt in function main()
引用
- C11 standard (ISO/IEC 9899:2011):
- 7.22.4.1 The abort function (p: 350)
- C99 standard (ISO/IEC 9899:1999):
- 7.20.4.1 The abort function (p: 315)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.10.4.1 The abort function