怎么用C语言判断Linux进程是否存在
时间: 2023-09-04 20:12:18 浏览: 281
判断进程是否存在
在C语言中,可以使用系统调用 `kill` 函数来判断进程是否存在。当 `kill` 函数执行成功时,返回值为0;当进程不存在时,`kill` 函数执行失败,返回值为-1,同时设置errno为ESRCH。因此,我们可以通过判断`kill` 函数的返回值和errno来判断进程是否存在。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <signal.h>
#include <errno.h>
int main(int argc, char *argv[]) {
pid_t pid = atoi(argv[1]); // 获取进程PID
int ret = kill(pid, 0); // 向进程发送0号信号
if (ret == 0) {
printf("Process %d exists.\n", pid);
} else if (errno == ESRCH) {
printf("Process %d does not exist.\n", pid);
} else {
perror("kill");
return 1;
}
return 0;
}
```
上述代码中,`kill` 函数向进程发送0号信号,如果进程存在,则返回0;如果进程不存在,则返回-1,并设置errno为ESRCH。在代码中,我们通过判断 `kill` 函数的返回值和errno,输出进程是否存在的信息。此处需要注意的是,pid需要从命令行参数中获取。
阅读全文