c - 通过解析/bin/ps的输出得到PID

标签 c pid

在 C 程序中,我逐行读取/bin/ps -fu1000 的输出并搜索字符串,例如“gnome”。 当我找到字符串 (gnome) 时,如何获取 pid? 整行保存在一个 char buf[256] 中。

cm       12556     1  0 10:47 ?        00:00:13 gnome-terminal

... 是的,这是作业的一部分。


看了一些评论后:

我不得不使用 C。任务的目标是编写一个程序,它将向正在运行的进程发送信号,并在其名称中包含指定的字符串。

我的做法是这样的:

fp = popen("/bin/ps -fu1000", "r");
while(fgets(line, sizeof line, fp)){
  if(strstr(line, "gnome")){
    printf("found\n");
    /* do some nice stuff to get the PID */
  }
}

最佳答案

如果它在 C 中,请尝试查看 sscanf 标准库函数。文档应该可以通过 Unix 类型系统(如 Linux)上的手册页或在线引用(如 GNU C Reference)获得。 .

关于c - 通过解析/bin/ps的输出得到PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6468409/

相关文章:

c - 将头节点添加到单链表会产生段错误

c - 在C代码中打印底部带有*的倒三角形

linux - 获取输出为管道的命令的 pid

golang exec后台进程并获取它的pid

postgresql - 如何获取我在 postgres 上执行的同一查询的进程 ID

linux - 使用 bsub 提交给 LSF 的命令的 PID

pid - fork() 之后的 PID 是什么?

c - 抑制 ld symbol not found 错误以便稍后在运行时解决

c - 使用 argv[1] 的段错误

对 C 中的这个语句感到困惑?