如何使用 C++ 以编程方式杀死进程?
Posted
技术标签:
【中文标题】如何使用 C++ 以编程方式杀死进程?【英文标题】:How to kill a process programatically using c++? 【发布时间】:2014-03-26 01:55:09 【问题描述】:伙计们,我正在尝试通过 C++ 程序杀死进程,它正在杀死进程,但在杀死进程后没有得到所需的输出,我想要的输出是在杀死进程后显示剩余的正在运行的进程 if块,而不是显示 else 块。我改变了 if block & else block 仍然没有得到想要的输出。 代码如下:
#include<iostream>
#include<cstdlib>
#include<csignal>
using namespace std;
int main()
int pid,f=0;
system("ps -all");
cout<<"Enter the Process ID to kill\n";
cin>>pid;
if((kill(pid,SIGKILL)))
f=1;
if(f)
cout<<"List of processes after killing the process with PID"<<pid<<"are"<<"\n";
system("ps -l");
else
cout<<"Cant kill the process\n";
return 0;
【问题讨论】:
我正在开发 ubuntu 13.04 阅读您正在使用的函数的documentation 总是一个好主意。 【参考方案1】:您需要切换 if/else 情况:kill()
成功时返回 0,失败时返回 -1。只有当它失败时你才设置f=1
。
此外,当它失败时,它会将errno
设置为提供失败原因的错误代码。您可以使用 perror()
或 strerror()
之类的函数来获取基于该错误代码的描述性错误消息。
【讨论】:
我交换了 if/else 案例但没有得到。 您的意思是即使您将该代码移至if
块后,它仍在打印“无法终止进程”消息?
@Venki,你做错了什么。这是正确的答案。你甚至不需要变量 F。
那我不能再帮你了,因为你的代码对我来说是正确的(交换了 if/else 块)。以上是关于如何使用 C++ 以编程方式杀死进程?的主要内容,如果未能解决你的问题,请参考以下文章