如何中止c ++程序并以状态0退出?

时间:2012-01-10 14:13:53

标签: c++ abort

我想杀死我的c ++程序并立即终止而不激活任何类型的析构函数,尤其是静态和全局变量,但我想退出状态0 - abort()对我不起作用。

有没有人有解决方案? 感谢

3 个答案:

答案 0 :(得分:8)

也许_exit(0);正是您要找的?

以下是man page阅读相关内容。

答案 1 :(得分:6)

从C ++ 11 n3290 - §18.5:

[[noreturn]] void _Exit(int status) noexcept;
  

程序终止而不执行自动,线程或的对象的析构函数   静态存储持续时间并且没有调用函数传递给atexit()

这实际上是在C99中定义的,但实际上它适用于大量的C ++ 11之前的实现。

使用:

#include <cstdlib>
#include <iostream>

struct test {
  ~test() {
    std::cout << "Goodbye world" << std::endl;
  }
};

int main() {
  test t;
  _Exit(0);
}

答案 2 :(得分:1)

来自stdlib.h的{​​{3}}怎么样? (演示:_Exit(0)