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

Wea*_*Fox 2 c++ abort

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

有没有人有办法解决吗?谢谢

Gra*_*min 8

也许_exit(0);你正在寻找什么?

这是阅读它的手册页.


Fle*_*exo 6

从C++ 11 n3290 - §18.5:

[[noreturn]] void _Exit(int status) noexcept;
Run Code Online (Sandbox Code Playgroud)

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

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

使用:

#include <cstdlib>
#include <iostream>

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

int main() {
  test t;
  _Exit(0);
}
Run Code Online (Sandbox Code Playgroud)