clock
호출 프로세스에서 사용하는 벽시계 시간을 계산합니다.
구문
clock_t clock( void );
반환 값
프로세스 시작 시 CRT 초기화 이후 경과된 시간으로, 초당 CLOCKS_PER_SEC
단위로 측정됩니다. 경과된 시간을 사용할 수 없거나 경과된 시간이 clock_t
형식으로 기록될 수 있는 최대 양수 시간을 초과한 경우 함수가 (clock_t)(-1)
값을 반환합니다.
설명
clock
함수는 프로세스 시작 중 CRT 초기화 이후 경과된 벽시계 시간을 알려 줍니다. 이 함수는 순 CPU 시간을 반환 값으로 지정하는 ISO C를 엄격하게 준수하지 않습니다. CPU 시간을 가져오려면 Win32 GetProcessTimes
함수를 사용합니다. 경과된 시간을 초 단위로 확인하려면 clock
함수에서 반환한 값을 CLOCKS_PER_SEC
매크로로 나눕니다.
충분한 시간을 가정하면 clock
에서 반환한 값이 clock_t
의 최대 양수 값을 초과할 수 있습니다. 프로세스가 더 길게 실행되면 clock
에서 반환한 값은 ISO C99 표준(7.23.2.1) 및 ISO C11 표준(7.27.2.1)에 의해 지정된 대로 항상 (clock_t)(-1)
입니다. Microsoft는 clock_t
를 부호 있는 32비트 정수, long
으로 구현하며 CLOCKS_PER_SEC
매크로가 1000으로 정의됩니다. 이 매크로는 최대 clock
함수 반환 값 2147483.647초 또는 약 24.8일을 제공합니다. 이 시간보다 오래 실행된 clock
프로세스에서 반환된 값에 의존하지 마세요. 64비 time
트 함수 또는 Windows QueryPerformanceCounter
함수를 사용하여 프로세스 경과 시간을 기록할 수 있습니다.
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
clock |
<time.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
// 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
참고 항목
시간 관리
difftime
, , _difftime32
_difftime64
time
, , _time32
_time64