zoukankan      html  css  js  c++  java
  • 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被执行时,被调用时,程序将直接退出,任何对象的析构函数都不会调用。

  • 相关阅读:
    网站的内容安全策略(CSP)
    javascript学习日记--eval、prompt
    【java每日一学】Applet类详解
    JavaScript 闭包应用-打印所有li元素的内容
    JavaScript 闭包应用-计算打车价格
    JavaScript 闭包应用-点击li输出索引号
    JavaScript jQuery 任务清单 ToDoList
    JavaScript 面向对象TAB栏切换
    JavaScript 常见移动端网页特效
    JavaScript 移动端轮播图
  • 原文地址:https://www.cnblogs.com/y4247464/p/13647404.html
Copyright © 2011-2022 走看看