C++ abort函数(转)

https://www.cnblogs.com/maqiang/archive/2012/04/30/2476695.html

对于一个用C++写的程序,被加载至内存后运行,最终走向死亡。程序的死亡大致有三种:

  • 自然死亡,即无疾而终,通常就是main()中的一个return 0;
  • 自杀,当程序发现自己再活下去已经没有任何意义时,通常会选择自杀。当然,这种自杀也是一种请求式的自杀,即请求OS将自己毙掉。有两种方式:void exit(int status)和void abort(void)。
  • 他杀,同现实不同的是,程序家族中的他杀行径往往是由自己至亲完成的,通常这个至亲就是他的生身父亲(还是母亲?)。C++并没有提供他杀的凶器,这些凶器往往是由OS直接或者间接(通过一些进程库,如pthread)提供的。

  自然死是最完美的结局,他杀是我们最不愿意看到的,自杀虽是迫不得已,但主动权毕竟还是由程序自己掌控的;abort被调用时,程序将直接退出,任何对象的析构函数都不会调用

函数名: abort

  头文件:#include <stdlib.h> 

  功 能: 异常终止一个进程。中止当前的过程,返回一个错误代码。错误代码的缺省值是3

  中止一个程序异常终止的过程。

  该函数产生SIGABRT信号,默认情况下导致程序终止不成功的终止错误代码返回到主机环境。

  自动或静态存储持续时间的对象,而无需调用任何atexit函数,析构函数不执行程序终止。函数永远不会返回到其调用者。 

  用 法: void abort(void);

assert();中就是调用了abort, 因此assert被执行时,被调用时,程序将直接退出,任何对象的析构函数都不会调用。

原文地址:https://www.cnblogs.com/y4247464/p/13647404.html