在 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/