Sur Linux, je voudrais savoir quelle API "C" appeler pour obtenir les statistiques par CPU.Comment est-ce que j'obtiens des stats par-cpu (système, idle, gentil, ...) comme le fait la commande "top"?
Je sais au sujet et pouvait lire /proc/loadavg
à partir de mon application, mais cela est le avarages charge l'ensemble du système, et non pas les informations par-cpu. Je veux différencier les processeurs individuels ou les cœurs.
À titre d'exemple d'une application qui fait cela, quand je lance top
et appuyez sur « 1 », je peux voir les 4 ou 8 processeurs/coeurs comme celui-ci:
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
j'ai essayé de strace top
mais cela a conduit à un nid de rat.
Cette question intéressante aurait dû être migrée vers [Unix & Linux.SE.] (Http://unix.stackexchange.com/?as=1) – Vorac
@ Vorac, non? Il s'agit de l'API C Non shell ou les fichiers du noyau (bien que '/ proc' sera probablement utilisé de toute façon). – rubenvb
@rubenvb, vous avez un bon point. D'autre part. lire un fichier dans/proc s'applique également aux utilisateurs, aux administrateurs et aux programmeurs. Et la question est spécifique à Linux. Mais alors, il y a une balise 'linux' ici. D'un autre côté, ce site est assez surchargé et il serait bon de diffuser certains sujets à ses soeurs SE-es. Oh, je me suis tellement mélangé. – Vorac