在C语言中获取子进程的CPU(用户和系统)和实时使用率
因此,我有一个操作系统类的作业和它要添加的增值选项之一,当列出我运行的命令的进程ID和名称、CPU时间和相同命令的实际使用时间时。问题是,我只能在它们完成后,使用times()函数获取它们,并且信息应该在它们运行时出现。有没有办法做到这一点 我通过分叉父进程来启动命令,然后在子进程上运行在C语言中获取子进程的CPU(用户和系统)和实时使用率,c,linux,time,exec,cpu-usage,C,Linux,Time,Exec,Cpu Usage,因此,我有一个操作系统类的作业和它要添加的增值选项之一,当列出我运行的命令的进程ID和名称、CPU时间和相同命令的实际使用时间时。问题是,我只能在它们完成后,使用times()函数获取它们,并且信息应该在它们运行时出现。有没有办法做到这一点 我通过分叉父进程来启动命令,然后在子进程上运行execlp(“xterm”、“xterm”、“-hold”、“-e”、command,NULL)。如您所见,-hold防止窗口立即关闭,这一方面使我能够看到日期命令的输出,例如,但另一方面使xterm挂起,直到
execlp(“xterm”、“xterm”、“-hold”、“-e”、command,NULL)
。如您所见,-hold防止窗口立即关闭,这一方面使我能够看到日期命令的输出,例如,但另一方面使xterm挂起,直到我使用kill()或直接在xterm窗口上关闭它
感谢所有的帮助。谢谢。:)
注意:操作系统是Linux(我使用的是Ubuntu11.04,但代码应该可以在所有发行版上运行)。您可以从
/proc/pid/stat
中读取此信息,其中pid
是您感兴趣的进程ID
有关详细信息,请参阅
还可以查看
ps-o格式,它允许您选择ps
应该显示的字段。再次,请参阅以了解详细信息。但是每次我要显示输入时是否必须读取整个文件?这不是有点太麻烦了吗?