【问题标题】:Getting CPU (user and system) and real usage time of child processes in C在C中获取子进程的CPU(用户和系统)和实际使用时间
【发布时间】:2012-04-13 18:59:51
【问题描述】:

因此,当列出我正在运行的命令的进程 ID 和名称、CPU 时间和相同命令的实际使用时间时,我有一个 OS 类的工作和一个要添加的增值选项。问题是,我只能在它们完成后使用 times() 函数获取它们,并且信息应该在它们运行时出现。有没有办法做到这一点?

我通过分叉父进程然后在子进程上运行execlp("xterm","xterm","-hold", "-e", command, NULL) 来启动命令。如您所见, -hold 可防止窗口立即关闭,例如,这使我能够看到 date 命令的输出,但另一方面使 xterm 挂起,直到我关闭它要么 kill() 要么直接在 xterm 窗口上。

感谢所有帮助。谢谢你。 :)

注意:操作系统是 Linux(我使用的是 Ubuntu 11.04,但代码应该适用于所有发行版)。

【问题讨论】:

    标签: c linux time exec cpu-usage


    【解决方案1】:

    您可以从/proc/<em>pid</em>/stat 读取此信息,其中pid 是您感兴趣的进程 ID。

    详情请参阅proc man pages

    还可以查看ps -o <em>format</em>,它允许您选择ps 应该显示的字段。再次,请参阅man pages 了解详细信息。

    【讨论】:

    • 但是每次我想显示输入时都必须读取整个文件吗?是不是有点太麻烦了?
    猜你喜欢
    • 2012-03-20
    • 2013-08-26
    • 2016-09-19
    • 2021-02-11
    • 2011-05-17
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 2011-12-23
    相关资源
    最近更新 更多