This documentation is archived and is not being maintained.


Calculates the wall-clock time used by the calling process.

clock_t clock( void );

Return Value

The elapsed wall-clock time since the start of the process (elapsed time in seconds times CLOCKS_PER_SEC). If the amount of elapsed time is unavailable, the function returns –1, cast as a clock_t.


The clock function tells how much time the calling process has used. A timer tick is approximately equal to 1/CLOCKS_PER_SEC second. In versions of Microsoft C before 6.0, the CLOCKS_PER_SEC constant was called CLK_TCK.


Routine Required header Compatibility
clock <time.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.


// crt_clock.c
/* This example prompts for how long
 * the program is to run and then continuously
 * displays the elapsed time for that period.

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

void sleep( clock_t wait );

int main( void )
   long    i = 6000000L;
   clock_t start, finish;
   double  duration;

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

   /* Measure the duration of an event. */
   printf( "Time to do %ld empty loops is ", i );
   start = clock();
   while( i-- ) 
   finish = clock();
   duration = (double)(finish - start) / CLOCKS_PER_SEC;
   printf( "%2.1f seconds\n", duration );

/* Pauses for a specified number of milliseconds. */
void sleep( clock_t wait )
   clock_t goal;
   goal = wait + clock();
   while( goal > clock() )

Sample Output

Delay for three seconds
Time to do 6000000 empty loops is 0.1 seconds

See Also

Time Management Routines | difftime | time | Run-Time Routines and .NET Framework Equivalents