C++官网参考链接:https://cplusplus.com/reference/cstdlib/abort/
函数
<cstdlib>
abort
C
void abort (void);
C++11
[[noreturn]] void abort() noexcept;
终止当前进程
终止当前进程,产生异常的程序终止。
该函数触发SIGABRT信号(就像调用了raise(SIGABRT)一样)。如果未被捕获,将导致程序终止,并向宿主环境返回一个与平台相关的不成功终止错误代码。
程序在不破坏任何对象的情况下终止,也不调用传递给atexit或at_quick_exit的任何函数。
形参
没有形参。
返回值
没有返回值(函数从不返回)。
用例
/* abort example */
#include <stdio.h> /* fopen, fputs, fclose, stderr */
#include <stdlib.h> /* abort, NULL */
int main ()
{
FILE * pFile;
pFile= fopen ("myfile.txt","r");
if (pFile == NULL)
{
fputs ("error opening file\n",stderr);
abort();
}
/* regular process here */
fclose (pFile);
return 0;
}
如果myfile.txt不存在,则打印一条消息并调用abort。
数据竞争
同时调用此函数是安全的,不会导致数据竞争。
但是请注意,它的处理过程可能会影响所有线程。
异常(C++)
如果没有使用signal定义函数处理程序来处理SIGABRT,则该函数永远不会抛出异常(无抛出保证)。
否则,行为取决于特定的库实现。