Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/01/2009, à 03:37

nochka85

[Résolu] Language C - Afficher la conso CPU et la RAM ?

Bonjour,

Voilà mon soucis : J'ai 2 variables double nommées valeur1 et valeur2 dans lesquelles je souhaiterais mettre ma consommation  CPU dans la première et ma consommation de RAM dans la seconde ...

Je pensais dans un premier temps utiliser une commande qui fonctionne très bien dans un terminal pour récupérer la charge CPU (ou du moins le "idle" ... donc ce qui reste comme CPU de libre) :

top -b -n2 -d0.5 | grep 'Cpu(s)'| awk '{print $5;}' | sed -e 's/%id,//'  | sed -e 'N;s/^.*\n//'

... donc, j'ai mis çà dans mon programme C :

valeur1 = 100 - (double)system("top -b -n2 -d0.5 | grep 'Cpu(s)'| awk '{print $5;}' | sed -e 's/%id,//'  | sed -e 'N;s/^.*\n//'");

Mais cela ne marche pas du tout sad

Je récupère ce message en sortie :

sed: -e expression n°1, caractère 7: commande `s' inachevée

et valeur1 est toujours égale à -156 !! hmm

Bref, est-ce que quelqu'un pourrait :
1 - M'expliquer pourquoi cela ne marche pas ?
2 - Me dire ce que je pourrais utiliser pour récupérer ma conso CPU d'une manière plus "propre" que par un system(command) ? ... et par la même occasion, comment faire de même avec ma conso de RAM ? tongue

Merci d'avance wink

Dernière modification par nochka85 (Le 18/01/2009, à 17:34)


Carte mère Asus P7P55D-E; Processeur Intel core i5 760; 8Go RAM PC3-10666; Geforce GTX 460 1024Mo sous Ubuntu 64bits 14.04
Eeepc 701 4G sous Linux Mint 10 Lxde
Site officiel de Glx-Dock/Cairo-Dock : http://www.glx-dock.org/
Dnd2share Unity - Partager vos images sur le forum par drag'n drop

Hors ligne

#2 Le 18/01/2009, à 11:19

human enemy

Re : [Résolu] Language C - Afficher la conso CPU et la RAM ?

Regarde libgtop

http://library.gnome.org/devel/libgtop/stable/

c'est ce qui est utilisé par le Moniteur Système de GNOME entre autres.


<linux user>463160</linux user>
str = g_strdup_printf ("ubuntu user : %d",20328);

Hors ligne

#3 Le 18/01/2009, à 15:45

nochka85

Re : [Résolu] Language C - Afficher la conso CPU et la RAM ?

Merci pour l'info wink

Par contre, j'ai un peu de mal à récupérer ce que je souhaite sad

Pour la conso RAM, pas de problème ... j'ai fais çà :

valeur2 = 100 * ( ((double)memory.user/(1024*1024)) / ((double)memory.total/(1024*1024)) );

... et le résultat est EXACTEMENT le même que celui de mon conky (par exemple) big_smile

Par contre, pour le CPU, je ne comprend pas trop comment utiliser les valeurs hmm

Voilà un bout de code :

printf("CPU TYPE INFORMATIONS \n\n"
"Cpu Total : %ld \n"
"Cpu User : %ld \n"
"Cpu Nice : %ld \n"
"Cpu Sys : %ld \n"
"Cpu Idle : %ld \n"
"Cpu Frequences : %ld \n",
(unsigned long)cpu.total,
(unsigned long)cpu.user,
(unsigned long)cpu.nice,
(unsigned long)cpu.sys,
(unsigned long)cpu.idle,
(unsigned long)cpu.frequency);

... et voilà ce qu'il me renvoit :

CPU TYPE INFORMATIONS 

Cpu Total : 1150783 
Cpu User : 185744 
Cpu Nice : 25838 
Cpu Sys : 70807 
Cpu Idle : 848664 
Cpu Frequences : 100

... Bref, comment je peux utiliser ces valeurs pour mettre le pourcentage de ma charge CPU dans ma variable valeur1 ? neutral


Carte mère Asus P7P55D-E; Processeur Intel core i5 760; 8Go RAM PC3-10666; Geforce GTX 460 1024Mo sous Ubuntu 64bits 14.04
Eeepc 701 4G sous Linux Mint 10 Lxde
Site officiel de Glx-Dock/Cairo-Dock : http://www.glx-dock.org/
Dnd2share Unity - Partager vos images sur le forum par drag'n drop

Hors ligne

#4 Le 18/01/2009, à 17:34

nochka85

Re : [Résolu] Language C - Afficher la conso CPU et la RAM ?

Bon, en fait, j'ai trouvé :

valeur1 = (unsigned long) (100. - (cpu.idle - old_cpu_idle) / REFRESH);  // REFRESH en secondes = temps entre chaque lecture
					if (valeur1Next > 100)
					{
						valeur1Next = 100.;
					}
					old_cpu_idle = cpu.idle;

wink


Carte mère Asus P7P55D-E; Processeur Intel core i5 760; 8Go RAM PC3-10666; Geforce GTX 460 1024Mo sous Ubuntu 64bits 14.04
Eeepc 701 4G sous Linux Mint 10 Lxde
Site officiel de Glx-Dock/Cairo-Dock : http://www.glx-dock.org/
Dnd2share Unity - Partager vos images sur le forum par drag'n drop

Hors ligne