Comment calculer le temps écoulé en C

C'est juste un préambule au calcul du temps en C sous UNIX. Pour de plus amples renseignements, consulter le Kernighan et Ritchie (p 261) ou les pages man.

Ceci doit aussi être valable pour la norme ANSI.

Quelques fonctions...
clock_t clock();
time_t time(time_t * t);
double difftime(time_t * t2, time_t * t1);
 
Librairie
time.h
 
Constantes
CLK_TCK
CLOCKS_PER_SEC (ANSI C)
 

Pour toute opération, il faut bien entendu ne pas oublier d'inclure le fichier time.h.

La fonction clock() renvoie une estimation du temps d'utilisation CPU depuis le début du programme ou -1 en cas d'échec. Il faut diviser cette valeur par l'une des deux constantes données pour obtenir un temps en secondes. Si vous voulez une unité de temps différente (plus précise par exemple), je vous conseille d'aller voir ce que vaut cette valeur ou de faire une petite conversion en double.

ATTENTION : cette fonction doit être supportée par le système pour donner un résultat correct (sinon, on a juste le droit a une différence de temps!). Exit donc notre bon cygwin !

D'après le man Linux, sur certaines machines, clock() rmet le compteur à 0 toutes les 72 minutes.

ATTENTION : La norme C autorise l'initialisation de la fonction par n'importe quelle valeur. Pour calculer le temps, il est donc conseillé de faire un premier appel à la fonction en début de programme et le second quand il faut puis de faire la différence.

La fonction time() renvoie l'heure calendaire (depuis le 1er janvier 1970 0h00:00). Si le pointeur t n'est pas nul, la variable contiendra aussi cette valeur.

la fonction difftime() permet de calculer la différence t2 - t1 (en secondes).