Microsoft KB Archive/49729

From BetaArchive Wiki

INFO: Documentation Supplement for clock()

Article ID: Q49729

The information in this article applies to:

  • The C Run-time (CRT) included with: - Microsoft C for MS-DOS, versions 5.1, 6.0, 6.0a, 6.0ax - Microsoft C/C++ for MS-DOS, version 7.0 - Microsoft Visual C++ for Windows, versions 1.0, 1.5 - Microsoft Visual C++ 32-bit Edition, versions 1.0, 2.0, 2.1, 4.0, 5.0


The clock() function is documented as telling how much processor time has been used by the calling process. This definition is misleading.


The clock() function returns a clock_t (long) value, which is the difference between the time field (for seconds) and millitm field (for milliseconds) in the structure that is returned from two calls to the ftime() function. The first call to ftime() is made within the startup code of the executing program, and the second call is made when the clock() function is explicitly called in your code.

Thus, the value returned by clock() is the number of CLK_TCKs (milliseconds) elapsed since the startup code was executed, or -1 if the function was unsuccessful.

NOTE: On most IBM PCs and compatibles, the clock speed is not fast enough to compute milliseconds, or indeed, hundredths of seconds. The ftime function calls interrupt 21, function 2Ch (under MS-DOS), which returns, among other information, the seconds in hundredths. The hundredths information is an estimation from the clock speed, which is approximately 18.2 ticks per second on most PCs. This hundredths value is multiplied by 10 to get the millisecond value.

Keywords          : kbCRT kbVC 
Version           : MS-DOS:5.1,6.0,6.00a,6.00ax,7.0; WINDOWS:1.0,1.5; WINDOWS  NT:1.0,2.0,2.1,4.0,5.0
Platform          : MS-DOS NT WINDOWS
Issue type        : kbinfo

Last Reviewed: September 4, 1997
© 1999 Microsoft Corporation. All rights reserved. Terms of Use.