Partager via


clock

Calcule le temps horloge utilisé par le processus appelant.

Syntaxe

clock_t clock( void );

Valeur retournée

Temps écoulé depuis l’initialisation du CRT au début du processus, mesuré en CLOCKS_PER_SEC unités par seconde. Si le temps écoulé n’est pas disponible ou a dépassé le délai positif maximal qui peut être enregistré en tant que type clock_t, la fonction retourne la valeur (clock_t)(-1).

Notes

La fonction clock indique combien de temps horloge s’est écoulé depuis l’initialisation du CRT pendant le processus de démarrage. Cette fonction n’est pas strictement conforme à la norme ISO C, qui spécifie le temps processeur net comme valeur de retour. Pour obtenir des temps processeur, utilisez la fonction Win32 GetProcessTimes . Pour déterminer le temps écoulé en secondes, divisez la valeur retournée par la fonction clock par la macro CLOCKS_PER_SEC.

Selon la durée écoulée, la valeur retournée par clock peut dépasser la valeur positive maximale de clock_t. Quand le processus s’exécute plus longtemps, la valeur retournée par clock est toujours (clock_t)(-1), tel que spécifié par les normes ISO C99 (7.23.2.1) et ISO C11 (7.27.2.1). Microsoft implémente clock_t en tant que long, entier signé 32 bits, et la macro CLOCKS_PER_SEC est définie avec la valeur 1000. Cette macro donne une valeur de retour de fonction maximale clock de 2147483,647 secondes, ou environ 24,8 jours. Ne vous fiez pas à la valeur retournée par clock les processus qui s’exécutent plus longtemps que cette durée. Vous pouvez utiliser la fonction 64 bits time ou la fonction Windows QueryPerformanceCounter pour enregistrer les temps écoulés pendant de nombreuses années.

Spécifications

Routine En-tête requis
clock <time.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

// crt_clock.c
// This sample uses clock() to 'sleep' for three
// seconds, then determines how long it takes
// to execute an empty loop 600000000 times.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// Pauses for a specified number of clock cycles.
void do_sleep( clock_t wait )
{
   clock_t goal;
   goal = wait + clock();
   while( goal > clock() )
      ;
}

const long num_loops = 600000000L;

int main( void )
{
   long    i = num_loops;
   clock_t start, finish;
   double  duration;

   // Delay for a specified time.
   printf( "Delay for three seconds\n" );
   do_sleep( (clock_t)3 * CLOCKS_PER_SEC );
   printf( "Done!\n" );

   // Measure the duration of an event.
   start = clock();
   while( i-- )
      ;
   finish = clock();
   duration = (double)(finish - start) / CLOCKS_PER_SEC;
   printf( "Time to do %ld empty loops is ", num_loops );
   printf( "%2.3f seconds\n", duration );
}
Delay for three seconds
Done!
Time to do 600000000 empty loops is 1.354 seconds

Voir aussi

Gestion des horaires
difftime, , _difftime32_difftime64
time, , _time32_time64