跳转到内容

C 编程/stdlib.h/abort

来自维基教科书,开放的书籍,开放的世界

C 编程 标准库函数。它用于编程过程或环境中异常终止程序或进程。当程序执行过程中遇到错误条件时,需要使用此函数退出进程。

它在结束程序之前删除缓冲区并关闭所有打开的文件。abort() 函数终止当前程序。根据实现的不同,函数的返回值可以表示取消(例如,您使用 signal() 函数捕获 SIGABRT)或中止失败。SIGABRT 由进程在调用 cstdlib 中定义的 abort libc 函数时发送给自己。SIGABRT 信号可以被捕获,但不能被阻塞;如果信号处理程序返回,则所有打开的流都会被关闭和刷新,并且程序终止(如果合适的话,转储核心),然后它将控制权返回给主机环境。这意味着 abort 调用永远不会返回。由于此特性,它通常用于在支持库中发出致命条件的信号,在这种情况下,当前操作无法完成,但主程序可以在退出之前执行清理。如果断言失败,它也会被使用。

头文件 & 语法

[编辑 | 编辑源代码]
 #include<stdlib.h>
 void abort( void );

返回值

[编辑 | 编辑源代码]

此函数不返回任何值,即它是 void 数据类型。

线程安全

[编辑 | 编辑源代码]

它是标准 c 库中的线程安全函数之一。即函数可以被不同的线程调用而不会出现任何问题。

此示例测试是否成功打开了文件 myfile。如果发生错误,将打印错误消息,程序将使用对 abort() 函数的调用结束。

#include <stdio.h>
#include <stdlib.h>
 int main(void)
{    FILE *stream;
     if ((stream = fopen("mylib/myfile", "r")) == NULL)
     {      perror("Could not open data file");
           abort();
     }
}
华夏公益教科书