繁体   English   中英

如何在C ++中结束进程?

[英]How to end a process in c++?

好的,所以我想编写一个可以结束当前正在运行的特定进程的c ++程序。 我已经搜索了互联网,但我遇到的所有解决方案都对我没有意义。 有没有简单的方法来结束流程?

在POSIX上,您调用kill(3)SIGTERM发送到该进程。 在Windows上,您调用TerminateProcess()

假设您使用的是* nix平台,并且具有进程ID(即,您使用其他方法来推断进程的pid生成了该进程),那么使用kill(2)应该可以:

#include <sys/types.h>
#include <signal.h>

void main() {
    /* ... */
    pid_t pid = ???;
    kill(pid, SIGTERM);
}

不过,它仅在某些条件下才能工作:

为了使进程具有发送信号的权限,它必须具有特权(在Linux下:具有CAP_KILL功能),或者发送进程的真实或有效用户ID必须等于目标的真实或已保存的设置用户ID。处理。 对于SIGCONT,发送和接收进程属于同一会话就足够了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM