C함수 프로그램 수행 후 지난 시간 구하기 clock()
프로그램 시작부터 지금까지의 경과 시간을 출력합니다.
- 헤더: time.h
- 형태: clock_t clock(void)
- 인수: -
- 반환: clock_t 프로그램 실행 후 현재까지의 시간을 구한다.
clock()는 사용해서는 안 되는 이유
clock()는 무슨 이유인지는 모르지만 제대로 작동을 하지 않습니다. 그러므로 절대 사용하지 마십시오.
clock() 값을 계속 출력하면 프로그램 실행 후의 시간 값이 출력되어야 하지만 계속 0의 값만 출력됩니다. 이렇게 저렇게 해도 안 되서 답답한 마음에 고수(실력이 짱인 분)께 전화를 했습니다.
길석: 고수님, 몇 시간째 고생하는데 생각대로 잘 안됩니다.
고수: 무슨 문제인데요?
길석: gcc 라이브러리 함수 중에 클락...
고수: (중간에 말을 끊으시면서) 쓰지마세요. 제대로 작동을 하지 않습니다.
길석: 네? 책에도 나와 있고, 네이버 지식....
고수: 안되는 이유는 아직 모릅니다만 여하튼 안됩니다.
길석: 끙~
좀 항당하지만 고수가 모르는 이유로 안 된다면 아예 사용해서는 안 되겠네요. 이 글을 임베이드리눅스 포럼에 올렸는데, 댓글로 다른 고수님께서 참고할 내용을 말씀 주셨습니다.
멤데:clock()은 sleep이나 getch등에 의해 해당 프로세스가 유휴상태에 들어가면 같이 멈춥니다 -_- 그점을 유의해야 해요..
C언어 lock() 함수 예제
#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main( void)
{
clock_t clk_start;
double diff;
clk_start = clock() ;
while ( 1 )
{
diff = (double)( clock() -clk_start) / CLOCKS_PER_SEC;
printf( "%g\n", diff);
sleep( 3); // 3초 대기
}
return 0;
}
C언어 lock() 예제 실행 결과
]$ ./a.out
0
0
0
0
]$
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
C언어 에러 번호 구하는 변수 errno (0) | 2020.03.14 |
---|---|
C언어 날짜와 시간 차이 구하기 함수 difftime() (0) | 2020.03.14 |
C언어 strftime 함수 날짜와 시간 문자열 구하기 (0) | 2020.03.14 |