2009-09-28 4 views
0

Salut J'essaie d'obtenir l'heure système et l'heure de l'utilisateur des applications étant fourchues par un shell. Je ne suis pas sûr du temps que je vais avoir, secondes? millisecondes? Est-ce que quelqu'un sait?rusage() mesuré en secondes ou en millsecondes?

printf("System time: %ld.%06ld sec\n",usage.ru_stime.tv_sec, usage.ru_stime.tv_usec); 
printf("User time: %ld.%06ld sec\n\n",usage.ru_utime.tv_sec, usage.ru_utime.tv_usec); 

Ceci est un échantillon des résultats obtenus. J'ai le temps en secondes, mais je ne suis pas vraiment sûr

# PID Name System Time User Time     
***************************************************** 
1 12420 firefox 0.148009 sec 0.816051 sec 
2 12429 gimp 0.444027 sec 2.512157 sec 
3 12442 clear 0.000000 sec 0.000000 sec 

Répondre

1

Vous obtenez ni secondes ni millisecondes, ni microsecondes - vous obtenez struct timeval. C'est une structure composée de deux champs: tv_sec donne des secondes entières, et tv_usec donne des microsecondes; cette dernière valeur étant inférieure à un million (c'est donc toujours une fraction de seconde). Donc la résolution que supporte cette API est de quelques microsecondes; l'unité que vous devez utiliser dans votre instruction d'impression est la seconde - donc vous le faites déjà correctement.

+0

Merci, ça a du sens maintenant. – user69514