'time'에 해당되는 글 1건

  1. 2013.02.15 시간과 날짜 관련 함수들

■ clock 함수 : 성능을 확인.


#include <time.h>

clock_t clock(void);

성공 시 프로세스 타임 반환, 실패 시 형 변환하여 -1 반환.


: '프로세스 타임(process time)'이라는 것이 있다. 이는 프로그램이 실행된 이후로 지나간 시간을 의미한다.

그리고 이 값이 1씩 증가하는 시간의 간격(이를 가리켜 '클럭 틱(clock tick)'이라 한다)은 매크로 CLOCKS_PER_SEC를 통해서 확인할 수 있다. 따라서 이 매크로의 값이 1000이면 이는 다음과 같은 의미로 이어지게 된다.


◎ 클럭 틱은 0.001초에 한번씩 발생(증가)한다.

◎ 1초에 총 1000회의 클럭 틱이 발생한다.

◎ 1초가 지날 때마다 clock 함수의 반환 값은 1000씩 증가한다.


세 문장은 모두 동일한 의미를 담고 있다.




※ clock 함수는 성능 측정을 위해서 사용이 되기 때문에 알고리즘을 평가하는 수단으로 사용이 된다.





■ time 함수 : 날짜와 시간


1970년 1월 1일 00시 00분 00초 이후로 경과한 시간을 표현.


UTC(Coordinated Universal Time) : '협정 세계시'라 하여 국제 사회가 사용하는 과학적 시간의 표준. 그리고 대한민국의 시간은 협정 세계시보다 9시간이 빠르다.


ctime 함수 : time함수가 반환한 값을 가지고 현재의 날짜와 시간을 계산.

#include <time.h>

char* ctime(const time_t* tptr);

성공 시 현재 지역의 시간과 날짜를 문자열의 형태로, 실패 시 NULL반환.






■ localtime 함수 : 년, 월, 일, 시, 분, 초 정보를 정수의 형태로 얻을 수 있다.


#include <time.h>

struct tm* localtime(const time_t* t);

현재 지역의 시간과 날짜 정보를 담은 tm 구조체 변수의 포인터 반환.


:ctime 함수의 장점은 현재 시간을 보기 좋게 출력할 수 있다는데 있다. 하지만 시간 정보를 가지고 연산을 해야 하는 상황에서는 활용하기 힘든 함수이다. 한 예로 프로그램상에서 두 개의 시간 정보를 비교해야 하는 상황이 등장할 수 있는데, 이러한 경우에는 정수의 형태로 년, 월, 일 그리고 시, 분, 초 정보를 추출할 수 있어야 한다.

이럴 때 유용한 함수가 localtime 함수이다.


struct tm

{

      int tm_sec;      //초 [0, 59]

      int tm_min;      //분 [0, 59]

      int tm_hour;    //시 [0, 23]

      int tm_mday;   //일 [1, 31]

      int tm_mon;    //월 [0, 11]

      int tm_year;    //년 [1900년 이후를 기준으로]

      int tm_wday;   //요일 [0, 6]

      int tm_yday;   //일 [0, 365]

      int tm_isdst;    //써머타임 적용여부

};





# time 함수의 활용



'Programming > C' 카테고리의 다른 글

Bit Field  (0) 2013.02.15
Bit Mask  (0) 2013.02.15
난수 (Random Number)  (0) 2013.02.15
r+, w+ a+ 모드의 활용  (0) 2013.02.15
표준 입력 및 출력 그리고 에러의 리다이렉션  (0) 2013.02.15
Posted by scii
: