Home C&C++函数库 c++ 语法 程序源码 Linux C库

abort

函数   <cstdlib>

C void abort (void);
C++11 noreturn void abort() noexcept;


中止当前进程

终止当前进程,产生异常的程序终止。

该函数抛出SIGABRT信号(就像调用raise(SIGABRT)一样)。
如果未捕获,则会导致程序终止,并向主机环境返回一个与平台相关的不成功终止错误代码。

程序终止时不销毁任何对象,也不调用传递给atexitat_quick_exit的任何函数。

☲  参数



none

☉  返回值



None(函数永不返回)。

☣  示例



/* 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,则函数永远不会抛出异常(no-throw保证)。

否则,行为取决于特定的库实现。

🍄  另请参阅



exit 终止调用进程(function )
atexit 设置退出时要执行的操作(function )

联系我们 免责声明 关于CandCplus 网站地图