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