如何立即终止我的程序(使用代码)。
编辑:寻找 Windows 和 Linux 解决方案。
EDIT2:我在 Windows 上尝试过
exit
、
_exit
、
abort
和
terminate
,但没有成功。EDIT3:虽然我还无法访问 Linux 机器,但我能够使用以下代码成功终止我的 Windows 程序:
int pid = _getpid();
char buff[256];
sprintf(buff, "taskkill /pid %d /f", pid);
system(buff);
_exit()
,即可在Linux 和 Windows 上使用。它不会像
abort()
那样产生核心转储。
编辑:如果_exit()
对您来说不够好,您可能必须针对特定平台。在 Windows 上,您可以调用 ,据我所知,这是终止 Windows API 公开的进程的最有力/最直接的方法(尽管如果有更强有力的方法,我很乐意了解一下)。 在 Linux 上,提高
SIGKILL
可能会更好,正如 Jeffery Thomas建议的那样。我实际上不知道
SIGKILL
是否比_exit()
更有力/更直接。这两种方法都是异步的。
将执行您想要的操作。对于 Windows,我首先会看的是
TerminateProcess(GetCurrentProcess(),0)
。注意:这可能会导致全局共享 DLL 出现问题。作为最后的评论,您没有提供任何细节,但无论您尝试做什么,如果这是您的出路,那么您都以错误的方式做。
_exit()
。这将立即终止您的程序。
abort()
函数,或在 C++ 中调用
std::terminate
。(
terminate
_Exit
(注意:大写
E
)被指定为 §18.5/3”程序终止,不执行自动、线程或对象的析构函数 静态存储持续时间并且不调用传递给
atexit()
的函数如果您希望执行可能的处理程序,那么您可以调用
std::quick_exit
,它会调用已注册的处理程序,然后调用
_Exit
。