Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1439 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C][Gnu] info utilisation memoire, processeur et swap [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C][Gnu] info utilisation memoire, processeur et swap [résolu]

n°2110418
Profil sup​primé
Posté le 08-11-2011 à 22:54:26  answer
 

Bonjour,
Je voudrais récupéré les info comme si je faisais un top ou un ps aux, sur le processus courant.
Dans un premier temps, je voudrais savoir comment connaître le processus courant.
Quel bibliothèque utiliser ?
Vous pouvez m'aider ?


Message édité par Profil supprimé le 09-11-2011 à 04:17:50
mood
Publicité
Posté le 08-11-2011 à 22:54:26  profilanswer
 

n°2110419
Pouet_fore​ver
Trance forever :)
Posté le 08-11-2011 à 22:56:34  profilanswer
 

Pour connaître le processus courant tu as la fonction 'getpid' qui te renvoie le pid.
Après, ça dépend de ce que tu veux récupérer comme infos.

n°2110421
Profil sup​primé
Posté le 08-11-2011 à 23:08:42  answer
 

Pouet_forever a écrit :

Pour connaître le processus courant tu as la fonction 'getpid' qui te renvoie le pid.
Après, ça dépend de ce que tu veux récupérer comme infos.


En fait, je me suis embrouiller en retombant sur terre.
Je voudrais connaître l'utilisation mémoire totale de la bécane, l'utilisation processeur total de la bécane, et la priorité du processus courant mais pas ce programme, c'est à dire que j'aimerais, je crois, tirer les info de l'ordonnanceur pour avoir le ou les (sur un multi) processus en cours.
 
Edit et le swap total.
 
edit Dans /proc/meminfo, j'ai le total et le free mémoire et le swap.
La mémoire, c'est réglé.


Message édité par Profil supprimé le 08-11-2011 à 23:40:12
n°2110432
Profil sup​primé
Posté le 09-11-2011 à 01:37:30  answer
 

Bonsoir, j'ai un problème de pourcentage, j'espère que vous pourez m'aider,
 
Voici mon code dans le quel je calcul, mem_used, un float pour représenter le pourcentage d'utilisation mémoire avec mem_free et mem_total deux float pour représenter deux entier sous forme de chaîne de caractères.
Le problème, c'est qu'au lieu d'avoir dans les 30%, j'ai 77.32.
Si vous pouviez jeter un Oeil.

Code :
  1. /* Ce programme affiche les information de /proc/meminfo sur un L'afficheur LCD */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. #include <string.h>
  6. #include "./libparalcd.h"
  7. #include <time.h>
  8. int main (void) {
  9.  
  10.   char date[9];
  11.   char hostname[9];
  12.  
  13.   char dummy[4096];
  14.  
  15.   char file[] = "/proc/meminfo";
  16.   FILE *fp;
  17.   char valeur[10];
  18.   char name[10];
  19.   char label_mem[] = "mem: \0";
  20.   char label_swap[] = "swap: \0";
  21.   char label_proc[] = "proc: \0";
  22.   char label_pid[] = "pid: \0";
  23.   char label_pri[] = "prio: \0";
  24.  
  25.   float mem_total, mem_free, mem_swap, mem_used = 0;
  26.  
  27.   char value_total[10];
  28.   char value_swap[10];
  29.   if (system(dummy)) return (1);
  30.  
  31.   fp = fopen(file, "r" );
  32.   if (!fp) {
  33.     perror("/proc/meminfo" );
  34.     return -1;
  35.   }
  36.    
  37.   time_t current_date = time(NULL);
  38.  
  39.   strftime(date, sizeof(date), "%H:%M:%S", localtime(&current_date));
  40.   gethostname(hostname, sizeof(hostname));
  41.  
  42.   if (ioperm(BASEPORT, 3, 1)) {
  43.     perror("can't set IO permissions!" );
  44.     return -1;
  45.   }
  46.  
  47.  
  48.   LCD_Init();   
  49.   usleep(120); 
  50.    
  51.   int i; 
  52.   for (i = 1; i <= 5 ; i++) {
  53.     fscanf(fp, "%s%s%s\n", name, valeur, dummy);   
  54.     current_date = time(NULL);
  55.    
  56.     switch (i) {
  57.      
  58.     case 1 : {
  59.      
  60.       char *p_conv = NULL;
  61.       mem_total = (float)strtol(valeur, &p_conv, 10);     
  62.       strftime(date, sizeof(date), "%H:%M:%S", localtime(&current_date));
  63.       LCD_ClearDisplay();       
  64.       usleep(120);
  65.       SetPosition_LCD(3, 1);     
  66.       usleep(120); 
  67.       LCD_WriteString(hostname);   
  68.       usleep(120);       
  69.       SetPosition_LCD(4, 1);     
  70.       usleep(120);
  71.       LCD_WriteString(date);
  72.       usleep(120);
  73.       SetPosition_LCD(1, 1);
  74.       LCD_WriteString(label_mem);   
  75.       usleep(120); 
  76.       sprintf(value_total, "%f", mem_total);
  77.       LCD_WriteString(value_total);   
  78.       usleep(120);
  79.       port_clear();
  80.       sleep(1);
  81.      
  82.       break;
  83.     }
  84.     case 2 : {
  85.       char *p_conv = NULL;
  86.       mem_free = (float)strtol(valeur, &p_conv, 10);
  87.       mem_used = ((mem_total-mem_free)/mem_total)*100;                       
  88.       strftime(date, sizeof(date), "%H:%M:%S", localtime(&current_date));
  89.       LCD_ClearDisplay();       
  90.       usleep(120);
  91.      
  92.      
  93.       SetPosition_LCD(3, 1);
  94.      
  95.       usleep(120); 
  96.       LCD_WriteString(hostname);   
  97.       usleep(120); 
  98.       SetPosition_LCD(4, 1);     
  99.       usleep(120);
  100.       LCD_WriteString(date);
  101.       usleep(120);
  102.       SetPosition_LCD(1, 1);
  103.       LCD_WriteString(label_mem);   
  104.       usleep(120); 
  105.       sprintf(value_total, "%f", mem_free);
  106.       LCD_WriteString(value_total);   
  107.       usleep(120);     
  108.       port_clear();
  109.       sleep(1);
  110.       break;
  111.     }
  112.     case 5 : {
  113.       char *p_conv = NULL;
  114.       mem_swap = (float)strtol(valeur, &p_conv, 10);     
  115.       strftime(date, sizeof(date), "%H:%M:%S", localtime(&current_date));
  116.       LCD_ClearDisplay();       
  117.       usleep(120);           
  118.       SetPosition_LCD(3, 1);
  119.       usleep(120); 
  120.       LCD_WriteString(hostname);   
  121.       usleep(120);
  122.       SetPosition_LCD(4, 1);     
  123.       usleep(120);
  124.       LCD_WriteString(date);
  125.       usleep(120);     
  126.       SetPosition_LCD(1, 1);
  127.       LCD_WriteString(label_mem);   
  128.       usleep(120); 
  129.       sprintf(value_total, "%f", mem_used);
  130.       LCD_WriteString(value_total);   
  131.       usleep(120); 
  132.       SetPosition_LCD(2, 1);
  133.       usleep(120); 
  134.       LCD_WriteString(label_swap);   
  135.       usleep(120);       
  136.       sprintf(value_swap, "%f", mem_swap);
  137.       LCD_WriteString(value_swap);     
  138.       port_clear();
  139.       sleep(1);
  140.      
  141.     }
  142.     }
  143.   }
  144.   fclose(fp);
  145.   port_clear();
  146.   if (ioperm(BASEPORT, 3, 0)) {
  147.     perror("can't reset IO permissions!" );
  148.     return -1;
  149.   }
  150.   return 0;
  151. }


Message édité par Profil supprimé le 09-11-2011 à 01:39:33
n°2110438
Profil sup​primé
Posté le 09-11-2011 à 04:15:30  answer
 

J'ai résoiut tous mes problèmes pour le moment, en faisant un appel à ps.
 

Code :
  1. cpufp = popen("ps aux| awk 'NR > 0 { s +=$3 }; END {print s}'","r" );
  2.   fread(value_cpu, 1, sizeof(value_cpu)-1, cpufp);
  3.   fclose(cpufp);
  4.   memfp = popen("ps aux| awk 'NR > 0 { s +=$4 }; END {print s}'","r" );
  5.   fread(value_used, 1, sizeof(value_used)-1, memfp);
  6.   fclose(memfp);


 
Du coup je récupère la mémoire utiliser aussi comme ça.

n°2110862
Tamahome
⭐⭐⭐⭐⭐
Posté le 10-11-2011 à 22:19:28  profilanswer
 

Du coup c'est vachement GNU :o

n°2110892
Profil sup​primé
Posté le 11-11-2011 à 10:11:34  answer
 

Tamahome a écrit :

Du coup c'est vachement GNU :o


 
Bonjour, Si tu as une autre solution...
Pour la mémoire,  j'utilise /proc/meminfo en fait, parce que les opération ci-dessus me semblait un peu lourde.
 
Mais j'ai pas trouvé ou aller chercher les info pour l'utilisation cpu.

n°2111621
Tamahome
⭐⭐⭐⭐⭐
Posté le 15-11-2011 à 21:50:53  profilanswer
 

J'ai pas dit que j'avais une autre solution, j'ai juste dit que le titre est foireux. C'est pas GNU, ni Posix (qui est pourtant gaulois) ton truc :o
 
Au mieux, écrit ça en assembleur, mais ça sera dépendant de ton proc.

n°2111652
Profil sup​primé
Posté le 16-11-2011 à 08:28:16  answer
 

Tamahome a écrit :

J'ai pas dit que j'avais une autre solution, j'ai juste dit que le titre est foireux. C'est pas GNU, ni Posix (qui est pourtant gaulois) ton truc :o
 
Au mieux, écrit ça en assembleur, mais ça sera dépendant de ton proc.


 
Pourquoi c'est pas Gnu mon truc ?

n°2111815
Profil sup​primé
Posté le 16-11-2011 à 15:37:10  answer
 

Si c'est pas Gnu, alors je peux demander comment faire la même chose sur MS Windows !  :o

mood
Publicité
Posté le 16-11-2011 à 15:37:10  profilanswer
 

n°2111828
gilou
Modérateur
Modzilla
Posté le 16-11-2011 à 16:33:49  profilanswer
 

C'est faisable, mais pas simple du tout.
Vas voir ce code par exemple: http://www.codeproject.com/KB/thre [...] Usage.aspx
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2111832
Profil sup​primé
Posté le 16-11-2011 à 16:59:07  answer
 

gilou a écrit :

C'est faisable, mais pas simple du tout.
Vas voir ce code par exemple: http://www.codeproject.com/KB/thre [...] Usage.aspx
A+,


 
Merci Gilou, je vais le faire, mais avec Ada pour le moment.
 
Mais ça vas je crois que je vais y arriver.

n°2111834
Profil sup​primé
Posté le 16-11-2011 à 17:07:19  answer
 

Arff j'en sais rien du langage à utiliser en fait... Avec Ada la fonction GetSystemTime n'est pas la même que celle présentée dans la documentation. Ou j'ai pas compris.
 
Comme je connais que très peu le langage C, j'hésite.  :??:


Message édité par Profil supprimé le 16-11-2011 à 17:08:00
n°2111921
Profil sup​primé
Posté le 16-11-2011 à 21:29:09  answer
 

J'aurais besoin éventuellement d'un petit coup de pouce ici encore.
 
Je cherche comment appliquer une soustration soit des deux FILETIME soit de deus SYSTEMTIME.
 
J'ai fait ceci. Mais reste le problème des soustraction.
 

Code :
  1. #include <windows.h>
  2. #include <winbase.h>
  3. // Tu définis des types pointeurs sur les fonctions de la dll
  4. typedef BOOL (*LPFNDLLFUNC1)(LPFILETIME, LPFILETIME, LPFILETIME);
  5.  
  6. // tu définis en variables globales une variable par fonction de la dll avec le pointeur du bon type
  7. LPFNDLLFUNC1 lpfnGetSystemTimes;      // Function pointer to Out32
  8.  
  9.  
  10. // Dans le corps du main de ta fonction, tu fait la liaison avec la DLL
  11.  
  12. float GetCpuUsage (void) {
  13.  HINSTANCE hDLL;               // Handle to DLL
  14.  hDLL = LoadLibrary("kernel32" );  // Chargement dynamique de la DLL en mémoire
  15.  
  16.  if (hDLL != NULL) {
  17.  lpfnGetSystemTimes = (LPFNDLLFUNC1)GetProcAddress(hDLL, "GetSystemTime" );
  18.  if (!lpfnGetSystemTimes) {
  19.    // handle the error
  20.    FreeLibrary(hDLL);        
  21.    return -1;  // a toi de faire ce qu'il faut ici
  22.  }  
  23.  } else {
  24.    return 0;  // a toi de faire ce qu'il faut ici, avec un message comme quoi tu as pas pu charger la DLL
  25.  }
  26.  
  27.  
  28.  FILETIME last_userTime;
  29.  FILETIME last_kernelTime;
  30.  FILETIME last_idleTime;
  31.  BOOL res_alpha = lpfnGetSystemTimes( &last_idleTime, &last_kernelTime, &last_userTime );
  32.  
  33.  FILETIME idleTime;
  34.  FILETIME kernelTime;
  35.  FILETIME userTime;
  36.  BOOL res_beta = lpfnGetSystemTimes( &idleTime, &kernelTime, &userTime );
  37.    
  38.  SYSTEMTIME sys_last_userTime;
  39.  SYSTEMTIME sys_last_kernelTime;
  40.  SYSTEMTIME sys_last_idleTime;
  41.  SYSTEMTIME sys_userTime;
  42.  SYSTEMTIME sys_kernelTime;
  43.  SYSTEMTIME sys_idleTime;
  44.  FileTimeToSystemTime(&last_userTime, &sys_last_userTime);
  45.  FileTimeToSystemTime(&last_kernelTime, &sys_last_kernelTime);
  46.  FileTimeToSystemTime(&last_idleTime, &sys_last_idleTime);
  47.  int usr = sys_userTime - sys_last_userTime;
  48.  int ker = sys_kernelTime - sys_last_kernelTime;
  49.  int idl = sys_idleTime - sys_last_idleTime;
  50.  int sys = ker + usr;
  51.  
  52.  return (float)( (sys - idl) *100 / sys );
  53.  
  54. }


 
 
Si c'est possible,...  [:dawa_neowen]

n°2111951
Profil sup​primé
Posté le 16-11-2011 à 22:52:35  answer
 

J'ai suivi Internet et je suis tombé sur une solution mais j'arrive pas à compiler un truc.

Code :
  1. #include <windows.h>
  2. #include <winbase.h>
  3.  
  4.  
  5. // Tu définis des types pointeurs sur les fonctions de la dll
  6. typedef BOOL (*LPFNDLLFUNC1)(LPFILETIME, LPFILETIME, LPFILETIME);
  7.  
  8. // tu définis en variables globales une variable par fonction de la dll avec le pointeur du bon type
  9. LPFNDLLFUNC1 lpfnGetSystemTimes;      // Function pointer to Out32
  10.  
  11.  
  12. // Dans le corps du main de ta fonction, tu fait la liaison avec la DLL
  13.  
  14. float GetCpuUsage (void) {
  15.  HINSTANCE hDLL;               // Handle to DLL
  16.  hDLL = LoadLibrary("kernel32" );  // Chargement dynamique de la DLL en mémoire
  17.  
  18.  if (hDLL != NULL) {
  19.  lpfnGetSystemTimes = (LPFNDLLFUNC1)GetProcAddress(hDLL, "GetSystemTime" );
  20.  if (!lpfnGetSystemTimes) {
  21.    // handle the error
  22.    FreeLibrary(hDLL);        
  23.    return -1;  // a toi de faire ce qu'il faut ici
  24.  }  
  25.  } else {
  26.    return ;  // a toi de faire ce qu'il faut ici, avec un message comme quoi tu as pas pu charger la DLL
  27.  }
  28.  
  29.  
  30.  FILETIME last_userTime;
  31.  FILETIME last_kernelTime;
  32.  FILETIME last_idleTime;
  33.  BOOL res_alpha = lpfnGetSystemTimes( &last_idleTime, &last_kernelTime, &last_userTime );
  34.  
  35.  FILETIME idleTime;
  36.  FILETIME kernelTime;
  37.  FILETIME userTime;
  38.  BOOL res_beta = lpfnGetSystemTimes( &idleTime, &kernelTime, &userTime );
  39.  
  40.  
  41.  
  42.  SYSTEMTIME sys_last_kernelTime;
  43.  SYSTEMTIME sys_last_idleTime;
  44.  SYSTEMTIME sys_last_userTime;
  45.  SYSTEMTIME sys_userTime;
  46.  SYSTEMTIME sys_kernelTime;
  47.  SYSTEMTIME sys_idleTime;
  48.  FileTimeToSystemTime(&last_userTime, &sys_last_userTime);
  49.  FileTimeToSystemTime(&last_kernelTime, &sys_last_kernelTime);
  50.  FileTimeToSystemTime(&last_idleTime, &sys_last_idleTime);
  51.  FileTimeToSystemTime(&userTime, &sys_userTime);
  52.  FileTimeToSystemTime(&kernelTime, &sys_kernelTime);
  53.  FileTimeToSystemTime(&idleTime, &sys_idleTime);
  54.  
  55.  typedef union timeunion {
  56.    FILETIME fileTime;
  57.  ULARGE_INTEGER ul;
  58.  } real_last_userTime, real_last_kernelTime, real_last_idleTime,
  59.      real_idleTime, real_kernelTime, real_userTime;
  60.  
  61.  
  62.  if (!SystemTImeToFileTime(&sys_last_userTime,&real_last_userTime))
  63.    return 1;
  64.  if (!SystemTImeToFileTime(&sys_last_kernelTime,&real_last_kernelTime))
  65.    return 2;
  66.  if (!SystemTImeToFileTime(&sys_last_idleTime,&real_last_idleTime))
  67.    return 3;
  68.  if (!SystemTImeToFileTime(&sys_userTime,&real_userTime))
  69.    return 4;
  70.  if (!SystemTImeToFileTime(&sys_kernelTime,&real_kernelTime))
  71.    return 5;
  72.  if (!SystemTImeToFileTime(&sys_idleTime,&real_idleTime))
  73.    return 6;
  74.  
  75.  
  76.  int usr = real_userTime.ul.QuadPart - real_last_userTime.ul.QuadPart;
  77.  int ker = real_kernelTime.ul.QuadPart - real_last_kernelTime.ul.QuadPart;
  78.  int idl = real_idleTime.ul.QuadPart - real_last_idleTime.ul.QuadPart;
  79.  int sys = ker + usr;
  80.  
  81.  return (float)( (sys - idl) *100 / sys );
  82.  
  83. }


 
 
J'obtien les erreur suivante à l'appel de SytemTimeToFileTime... Je sais pas pourquoi....

E:\LCDware>gcc -c -o monito.o monitor.c
monitor.c: In function 'GetCpuUsage':
monitor.c:62: error: expected expression before 'real_last_userTime'
monitor.c:64: error: expected expression before 'real_last_kernelTime'
monitor.c:66: error: expected expression before 'real_last_idleTime'
monitor.c:68: error: expected expression before 'real_userTime'
monitor.c:70: error: expected expression before 'real_kernelTime'
monitor.c:72: error: expected expression before 'real_idleTime'
monitor.c:76: error: expected expression before 'real_userTime'
monitor.c:77: error: expected expression before 'real_kernelTime'
monitor.c:78: error: expected expression before 'real_idleTime'


 
Edit : Ca y est, J'ai viré typedef et ça remarche. Merci de votre patience.  :jap:


Message édité par Profil supprimé le 16-11-2011 à 23:00:21
n°2111954
gilou
Modérateur
Modzilla
Posté le 16-11-2011 à 23:11:30  profilanswer
 

C'est pas le I majuscule de SystemTImeToFileTime qui fait ça?
 
>> hDLL = LoadLibrary("kernel32" );  // Chargement dynamique de la DLL en mémoire
Inutile, le kernel est toujours en mémoire, on peut appeler directement la fonction.
 
Bref, tu peux faire
 
  FILETIME last_userTime;
  FILETIME last_kernelTime;
  FILETIME last_idleTime;
  BOOL res_alpha = GetSystemTimes( &last_idleTime, &last_kernelTime, &last_userTime );
   
  FILETIME idleTime;
  FILETIME kernelTime;
  FILETIME userTime;
  BOOL res_beta = GetSystemTimes( &idleTime, &kernelTime, &userTime );
 
et virer le code qui est avant
 
 
A+,


Message édité par gilou le 16-11-2011 à 23:14:21

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2111964
Profil sup​primé
Posté le 17-11-2011 à 00:00:30  answer
 

Merci Gilou, Ca marche pas... pour une undefined reference to GetSystemTimes.
Si non ça marche. !  [:talen]

n°2111978
gilou
Modérateur
Modzilla
Posté le 17-11-2011 à 02:53:09  profilanswer
 

Un probleme de flag préprocesseur ou de vieille version de windows.h
Recopies son prototype depuis winbase.h et ça devrait rouler.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2112082
Profil sup​primé
Posté le 17-11-2011 à 14:17:26  answer
 

Bonjour Gilou !
 
Tu voudrais que je copie le contenu de winbase.h dans windows.h ?
Quel intérêt puisque j'inclue déjà les deux et ça marche pas ? :??:  

n°2112088
gilou
Modérateur
Modzilla
Posté le 17-11-2011 à 14:58:01  profilanswer
 

Non, ce n'est pas ça.
Tu dois avoir le prototype de GetSystemTimes dans winbase.h, et pour une raison liée sans doute a des directives de preprocesseur, il n'est pas vu quand tu compiles le code, d'ou le "undefined reference to GetSystemTimes" je pense.
Donc en rajoutant le bon proto directement dans ton code, ça devrait coller.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2112092
Profil sup​primé
Posté le 17-11-2011 à 15:13:45  answer
 

J'ai un message de Windows à l'exécution qui me dit que le procédure GetSystemTimes est introuvable dans le bibliothèque de liaison dynamique de kernel32.dll.
 
J'ai copier dans mon code le prototype de GetSystemTimes soit :

Code :
  1. WINBASEAPI BOOL WINAPI GetSystemTimes(LPFILETIME,LPFILETIME,LPFILETIME);

Message cité 1 fois
Message édité par Profil supprimé le 17-11-2011 à 15:22:50
n°2112109
gilou
Modérateur
Modzilla
Posté le 17-11-2011 à 16:29:46  profilanswer
 

Euh, mais ça,ça ne se produit que si tu n'as pas au moins Windows XP SP2 d'installé!
Tu compiles sous quel version de Windows :heink:  
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2112110
Profil sup​primé
Posté le 17-11-2011 à 16:32:09  answer
 

XP SP1  :heink:  
 
Je vais installer SP2 pour voir, fallait le faire façon.

n°2112113
gilou
Modérateur
Modzilla
Posté le 17-11-2011 à 16:36:49  profilanswer
 

Ah ben c'est pour ça que ça marche pas, c'est pas dans kernel32 avant le SP2.
Une fois en SP2, tu n'auras probablement plus besoin du proto ajouté.
 
Notes que j'ai trouvé un autre code, similaire, pour l'usage du CPU, ici: http://www.philosophicalgeek.com/2 [...] s-c-and-c/
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2112117
Profil sup​primé
Posté le 17-11-2011 à 16:57:29  answer
 

gilou a écrit :

Ah ben c'est pour ça que ça marche pas, c'est pas dans kernel32 avant le SP2.
Une fois en SP2, tu n'auras probablement plus besoin du proto ajouté.


Ca marche avec le prototype de GetSystemTimes dans mon main file.

gilou a écrit :


Notes que j'ai trouvé un autre code, similaire, pour l'usage du CPU, ici: http://www.philosophicalgeek.com/2 [...] s-c-and-c/
 
A+,


Merci gilou.
J'ai jeté un coup d'oeil, mais c'est de C++, c'est plus plus tordu que du C.
Déjà que le C pour moi....  [:panzani gino]  
J'y rejeterais un coup d'oeil plus tard.
 
Déjà avec le SP2, j'ai pas le même résultat qu'en SP1.

n°2112119
Profil sup​primé
Posté le 17-11-2011 à 17:27:05  answer
 

Et ça marche pas en fait, ma solution pour Windows.
Parfois j'ai une division par zéro, parfois j'ai -6.0, 6.0, ou encore 100.0, mais c'est pas bon.

n°2112131
Profil sup​primé
Posté le 17-11-2011 à 17:55:19  answer
 

Avec un petit usleep(500000); entre les deux appel à GetSystemTimes, ça a l'air de donner un peu mieux.
 

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C][Gnu] info utilisation memoire, processeur et swap [résolu]

 

Sujets relatifs
logger ouverture fermeture processusfonctionnement getchar en C
colorer une carte geographique creé par openGL C++[ Divers / C ] Ecrire pour un afficheur LCD
[C] Modifier un tableau existant ... pour bouger un pion !Récuperer info membre Php-Mysql
Position info-bulle div près de la souris[C# / .Net] Migration OS 32Bits vers OS 64Bits. Quid des Perfs?
[C#] FormView, edit/insert mode 
Plus de sujets relatifs à : [C][Gnu] info utilisation memoire, processeur et swap [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR