我想杀死我的c ++程序并立即终止而不激活任何类型的析构函数,尤其是静态和全局变量,但我想退出状态0 - abort()
对我不起作用。
有没有人有解决方案? 感谢
答案 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)
)