在C程序中,我逐行读取/bin/ps -fu1000的输出,并搜索字符串,例如"gnome“。当我找到字符串(gnome)时,如何得到pid?整个行保存在一个char buf256中。
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 */
}
}发布于 2011-06-24 14:05:12
如果是C语言,请尝试查看sscanf标准库函数。文档可以通过Unix类型系统(如Linux )上的手册页或在线参考(如GNU C参考 )获得。
发布于 2011-06-24 13:29:27
尝试用唯一分隔符替换空格字符。然后搜索PID列,从一个分隔符跳到另一个分隔符。
发布于 2011-06-24 14:19:37
如果您在Linux上,关于您的精度,您可以遍历/proc中的每个PID文件夹并读取cmdline文件。这基本上就是ps所做的。
通过跟踪你所在的文件夹,你就可以得到pid。
https://stackoverflow.com/questions/6468409
复制相似问题