본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/프로그래밍
  3. C언어 프로그램 수행 후 지난 시간 구하기 함수 clock()

C언어 프로그램 수행 후 지난 시간 구하기 함수 clock()

· 댓글개 · 바다야크

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

]$
SNS 공유하기
💬 댓글 개
최근글
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.