如何立即杀死我的程序

Tho*_*ing 1 c++

如何立即终止我的程序(使用代码).

  • 我不想要析构函数.
  • 我不希望任何钩子执行.
  • 我只想要最简单的方法来杀死程序.

(我不是在寻找那些说这不是犹太人的答案.我知道不是.)

编辑:寻找Windows和Linux解决方案.

EDIT2:我试过exit,_exit,abort,并terminate没有在Windows上的成功.

编辑3:虽然我还没有访问Linux盒子,但我能够使用以下代码成功杀死我的Windows程序:

int pid = _getpid();
char buff[256];
sprintf(buff, "taskkill /pid %d /f", pid);
system(buff);
Run Code Online (Sandbox Code Playgroud)

Cor*_*lks 7

只需拨打电话_exit(),可在LinuxWindows上使用.它不会像abort()意志那样产生核心转储.

编辑:如果_exit()对你不够好,你可能不得不去特定于平台.

在Windows上,你可以调用TerminateProcess(),据我所知,这是杀死Windows API暴露的进程的最有力/最直接的方法(尽管如果有一个更强大的方法我很想了解它).

在Linux上,SIGKILL正如Jeffery Thomas建议的那样,提升可能会更好.我实际上不知道是否SIGKILL更有力/立即_exit().

这两种方法都是异步的.

  • @Jongware:`_exit()`(注意下划线)不调用`atexit()`/`on_exit()`函数. (3认同)

Jef*_*mas 7

在POSIX兼容的UNIX系统上,raise(SIGKILL)将执行您想要的操作.


对于Windows,TerminateProcess(GetCurrentProcess(),0)我会先看看.注意:这可能会导致全局共享DLL的问题.


作为最后的评论,你没有提供任何细节,但是对于你想要做的任何事情,如果这是你的出路,那么你做错了.