如何在Linux中获取统计信息?

时间:2019-02-21 16:55:59

标签: c linux proc stat

我正在linux和C中工作,我正在尝试从stat中获取特定值。 在/proc中,当我执行stat时,会返回多个值。

现在我正在尝试如下操作:

thisFile = fopen("/proc/stat","r");

并打印各个用户,系统和空闲模式,以便在我printf时可以按以下方式打印。

User Mode: 12189
System Mode: 5190
Idle Mode: 443

如何获取用户,系统和空闲模式的各个值?可能吗?? 谢谢您的提前帮助。

1 个答案:

答案 0 :(得分:1)

根据man 5 proccpu的{​​{1}}行中的前四个字段是

  

用户(1)在用户模式下花费的时间。
    不错(2)在用户模式下优先级较低的时间(不错)。
    系统(3)在系统模式下花费的时间。
    空闲(4)在空闲任务中花费的时间。

所以一种可能性是使用fgets()将文件逐行读入缓冲区,然后使用sscanf()解析相关的/proc/stat行:

cpu

此答案实现了之前评论中已经建议的内容。