Skip to content

Latest commit

 

History

History
101 lines (83 loc) · 4.07 KB

File metadata and controls

101 lines (83 loc) · 4.07 KB
title ms.custom ms.date ms.reviewer ms.suite ms.technology ms.tgt_pltfrm ms.topic apiname apilocation apitype f1_keywords dev_langs helpviewer_keywords ms.assetid caps.latest.revision author ms.author manager
clock | Microsoft Docs
11/04/2016
cpp-standard-libraries
article
clock
msvcrt.dll
msvcr80.dll
msvcr90.dll
msvcr100.dll
msvcr100_clr0400.dll
msvcr110.dll
msvcr110_clr0400.dll
msvcr120.dll
msvcr120_clr0400.dll
ucrtbase.dll
api-ms-win-crt-time-l1-1-0.dll
DLLExport
clock
C++
processor time used, calculating
time, calculating processor
clock function
processor time used
calculating processor time used
3e1853dd-498f-49ba-b06a-f2315f20904e
15
corob-msft
corob
ghogen

clock

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

Syntax

clock_t clock( void );  

Return Value

The elapsed time since the CRT initialization at the start of the process, measured in CLOCKS_PER_SEC units per second. If the elapsed time is unavailable or has exceeded the maximum positive time that can be recorded as a clock_t type, the function returns the value (clock_t)(-1).

Remarks

The clock function tells how much wall-clock time has passed since the CRT initialization during process start. Note that this function does not strictly conform to ISO C, which specifies net CPU time as the return value. To obtain CPU times, use the Win32 GetProcessTimes function. To determine the elapsed time in seconds, divide the value returned by the clock function by the macro CLOCKS_PER_SEC.

Given enough time, the value returned by clock can exceed the maximum positive value of clock_t. When the process has run longer, the value returned by clock is always (clock_t)(-1), as specified by the ISO C99 standard (7.23.2.1) and ISO C11 standard (7.27.2.1). Microsoft implements clock_t as a long, a signed 32-bit integer, and the CLOCKS_PER_SEC macro is defined as 1000. This gives a maximum clock function return value of 2147483.647 seconds, or about 24.8 days. Do not rely on the value returned by clock in processes that have run for longer than this amount of time. You can use the 64-bit time function or the Windows QueryPerformanceCounter function to record process elapsed times of many years.

Requirements

Routine Required header
clock <time.h>

For additional compatibility information, see Compatibility in the Introduction.

Example

// 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 milliseconds.  
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  

See Also

Time Management
difftime, _difftime32, _difftime64
time, _time32, _time64