如何获得像"top"命令一样的per-cpu统计信息(system,idle,nice,...)?

Sté*_*ane 8 c linux cpu-usage

在linux上,我想知道要调用什么"C"API来获取per-cpu统计信息.

我知道并且可以/proc/loadavg从我的应用程序中读取,但这是系统范围的负载平均值,而不是每个cpu信息.我想分开各个CPU或核心.

作为执行此操作的应用程序的示例,当我运行top并按"1"时,我可以看到4或8个处理器/核心,如下所示:

Cpu0  :  4.5%us,  0.0%sy,  0.0%ni, 95.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  : 42.2%us,  6.2%sy,  0.5%ni, 51.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  3.0%us,  1.5%sy,  0.0%ni, 94.5%id,  0.0%wa,  0.0%hi,  1.0%si,  0.0%st
Cpu3  :  7.0%us,  4.7%sy,  0.0%ni, 88.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Run Code Online (Sandbox Code Playgroud)

我试过,strace top但这导致了一只老鼠的窝.

Mat*_*ery 6

你想要的文件是/proc/stat.(您可能希望fs/proc/stat.c在Linux内核源代码中引用.)