Bonjour,
On me demande un programme sous Linux écrit en C qui donnerait les consommations de CPU et de mémoire de la machine sur laquelle il s'execute...
Je ne connais pas la lib qui permettrait d'avoir ces informations ?
Merci !









Bonjour,
On me demande un programme sous Linux écrit en C qui donnerait les consommations de CPU et de mémoire de la machine sur laquelle il s'execute...
Je ne connais pas la lib qui permettrait d'avoir ces informations ?
Merci !
Bonjour
Tournes-toi vers proc pour commencer.
sujet interressant, car j'aimerrais comprendre comment récupérer des informations systeme en C.
j'ai trouvé ce programme mais je n'arrive pas a le compiler :
je suis sous ubuntu 10
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #include <stdio.h> #include <sys/sysinfo.h> #include <linux/kernel.h> int main (void) { struct sysinfo info; if (sysinfo(& info) != 0) { perror("sysinfo"); exit(EXIT_FAILURE); } fprintf(stdout, "Nb secondes depuis boot : %ld \n", info.uptime); fprintf(stdout, "Charge système depuis 1 mn : %.2f%%\n", info.loads[0] / 655.36); fprintf(stdout, " 5 mn : %.2f%%\n", info.loads[1] / 655.36); fprintf(sdout, " 10 mn : %.2f%%\n", info.loads[2] / 655.36); fprintf(stdout, "Mémoire disponible : %ld Mo\n", info.freeram >> 20); fprintf(stdout, "Mémoire partagée : %ld Mo\n", info.sharedram >> 20); fprintf(stdout, "Mémoire dans buffers : %ld Mo\n", info.bufferram >> 20); fprintf(stdout, "Espace de swap total : %ld Mo\n", info.totalswap >> 20); fprintf(stdout, "Espace de swap libre : %ld Mo\n", info.freeswap >> 20); fprintf(stdout, "Nb processus en cours : %d \n", info.procs); return EXIT_SUCCESS; }
et j'ai ce message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 --- compilation main.c --- main.c: In function main: main.c:10: warning: implicit declaration of function exit main.c:10: warning: incompatible implicit declaration of built-in function exit main.c:10: error: EXIT_FAILURE undeclared (first use in this function) main.c:10: error: (Each undeclared identifier is reported only once main.c:10: error: for each function it appears in.) main.c:18: error: sdout undeclared (first use in this function) main.c:32: error: EXIT_SUCCESS undeclared (first use in this function) make: *** [lib/main.o] Erreur 1
Il semble que dans le code que vous avez copier, ou celui que vous utilisez y a des fautes un peu partout.
Il faut rajouter un
Avec les autres includes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2#include <stdlib.h>
Ligne 18: A la place de stout, il faut mettre stdout.
Voilà
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
merci, ça marche NIKEL !!
le code complet :
mais n'ya t'il pas une doc plus précise sur la librairie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #include <stdlib.h> #include <stdio.h> #include <sys/sysinfo.h> #include <linux/kernel.h> int main (void) { struct sysinfo info; if (sysinfo(& info) != 0) { perror("sysinfo"); exit(EXIT_FAILURE); } fprintf(stdout, "Nb secondes depuis boot : %ld \n", info.uptime); fprintf(stdout, "Charge système depuis 1 mn : %.2f%%\n", info.loads[0] / 655.36); fprintf(stdout, " 5 mn : %.2f%%\n", info.loads[1] / 655.36); fprintf(stdout, " 10 mn : %.2f%%\n", info.loads[2] / 655.36); fprintf(stdout, "Mémoire disponible : %ld Mo\n", info.freeram >> 20); fprintf(stdout, "Mémoire partagée : %ld Mo\n", info.sharedram >> 20); fprintf(stdout, "Mémoire dans buffers : %ld Mo\n", info.bufferram >> 20); fprintf(stdout, "Espace de swap total : %ld Mo\n", info.totalswap >> 20); fprintf(stdout, "Espace de swap libre : %ld Mo\n", info.freeswap >> 20); fprintf(stdout, "Nb processus en cours : %d \n", info.procs); return EXIT_SUCCESS; }
#include <sys/sysinfo.h>
#include <linux/kernel.h>
merci d'avance
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
Partager