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

  • 相关阅读:
    网络基础,socket,黏包,socketserver
    面向对象基础、继承、反射
    模块导入,正则表达式,常见模块,异常处理
    函数基础,参数,内置函数
    文件操作
    运算符、数字、字符串、列表、字典、集合、小数据池
    python基础
    Linux
    Bioconda安装与使用
    Perl语言入门--5--散列、hash
  • 原文地址:https://www.cnblogs.com/y4247464/p/13647404.html
Copyright © 2011-2022 走看看