伙计们我试图通过C ++程序杀死进程,它正在杀死进程,但是在杀死进程后没有获得所需的输出,我想要的输出是在杀死进程后显示剩余的正在运行的进程阻止,而不是显示else块。如果阻止&否则阻止仍然无法获得所需的输出。 这是代码:
#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;
}
答案 0 :(得分:2)
您需要切换if / else情况:kill()
成功时返回0,失败时返回-1。您只有在失败时才设置f=1
。
此外,当它失败时,它会将errno
设置为提供失败原因的错误代码。您可以使用perror()
或strerror()
等函数根据该错误代码获取描述性错误消息。