c - 如何在 C 中获取 Linux 中进程的 PID

标签 c linux process

我需要使用 kill API 终止进程。为此,我需要进程的进程 ID。我尝试使用:

ret = system("pidof -s raj-srv");

但它没有返回正确的值。我不想用这个终止进程:

ret = system("pkill raj");

是否有任何 API 可用于获取进程 ID?

最佳答案

您正在获取系统 的返回状态。那不是pid。你想要这样的东西:

char line[LEN];
FILE *cmd = popen("pidof...", "r");

fgets(line, LEN, cmd);
pid_t pid = strtoul(line, NULL, 10);

pclose(cmd);

关于c - 如何在 C 中获取 Linux 中进程的 PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8166415/

相关文章:

ruby - 在 ruby​​ 中使用其 PID 终止进程

c# - 如何从可以处理特定文件扩展名的程序列表中启动进程?

c - 按数据包计数的升序打印输出

c - 选择选项时菜单中出现段错误?

c - Makefile - 编译时出错 - 找不到文件

linux - 如何修复此脚本以获得正确的输出?

linux - 将图像闪烁到树莓派时会覆盖操作系统

c - C中的指针,不明白他们是怎么得到这个结果的

linux - 如何在连续的行中为我的 vi 编辑器添加前缀?

c# - 如何在新流程中启动第二个项目的新实例