首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过解析/bin/ps的输出获得PID

问通过解析/bin/ps的输出获得PID
EN

Stack Overflow用户
提问于 2011-06-24 13:23:33
回答 3查看 1.3K关注 0票数 1

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

代码语言:javascript
复制
cm       12556     1  0 10:47 ?        00:00:13 gnome-terminal

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

在阅读了一些评论之后:

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

我的方法是:

代码语言:javascript
复制
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 */
  }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-24 14:05:12

如果是C语言,请尝试查看sscanf标准库函数。文档可以通过Unix类型系统(如Linux )上的手册页或在线参考(如GNU C参考 )获得。

票数 1
EN

Stack Overflow用户

发布于 2011-06-24 13:29:27

尝试用唯一分隔符替换空格字符。然后搜索PID列,从一个分隔符跳到另一个分隔符。

票数 0
EN

Stack Overflow用户

发布于 2011-06-24 14:19:37

如果您在Linux上,关于您的精度,您可以遍历/proc中的每个PID文件夹并读取cmdline文件。这基本上就是ps所做的。

通过跟踪你所在的文件夹,你就可以得到pid。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6468409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档