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

新手上路,请多包涵

我需要使用 kill API 杀死一个进程。为此,我需要进程的进程 ID。我试图让它使用:

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

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

 ret = system("pkill raj");

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

原文由 ravi J 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 702
1 个回答

您将获得 system 的返回状态。那不是pid。你想要这样的东西:

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

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

pclose(cmd);

原文由 cnicutar 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题