帮我写一个linux环境下的C++代码,代码中有一个函数,函数的传入参数为一个进程名processName,要求这个函数杀死所有名叫processName的进程,这个函数在C++代码中执行linux kill -15指令,然后用c++ popen函数执行linux ps指令查看processName进程是否还存在,如果存在,继续对processName进程发送kill指令,直到全部杀死为止
时间: 2023-02-07 15:55:19 浏览: 158
在 Linux 环境下,可以使用如下 C 代码来杀死名叫 processName 的进程:
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
void killProcess(char* processName) {
// 首先使用 kill -15 指令杀死 processName 进程
char command[50];
sprintf(command, "kill -15 `pidof %s`", processName);
system(command);
// 使用 popen 函数执行 ps 指令,检查 processName 进程是否还存在
char checkCommand[50];
sprintf(checkCommand, "ps aux | grep %s", processName);
FILE* fp = popen(checkCommand, "r");
if (fp == NULL) {
printf("Failed to run command\n");
exit(1);
}
// 如果 processName 进程仍然存在,则继续使用 kill 指令杀死该进程
char buffer[1024];
while (fgets(buffer, 1024, fp) != NULL) {
if (strstr(buffer, processName) != NULL) {
system(command);
}
}
pclose(fp);
}
int main() {
killProcess("processName");
return 0;
}
阅读全文