반응형

gettimeofday를 대체하는 clock_gettime 함수

 

 

#include <time.h>
int clock_gettime(clockid_t clock_id, struct timespec *tp);
    struct timespec {
            time_t   tv_sec;        /* seconds */
            long     tv_nsec;       /* nanoseconds */
    };
--------------------------------------------------------------
#include <sys/time.h>
int gettimeofday(struct timeval *restrict tp, void *restrict tzp);
    struct timeval {
            time_t      tv_sec;     /* seconds */
            suseconds_t tv_usec;    /* microseconds */
    };

 

 clockid_t 타입

 CLOCK_REALTIME 

 시스템 전역의 실제 시계(The UNIX Epoch 시간)

 CLOCK_MONOTONIC  단조 시계 (특정 시점에서 흐른 시간, 대체적으로 부팅후 시간)
 CLOCK_PROCESS_CPUTIME_ID  프로세스 단위 CPU 사용 시간
 CLOCK_THREAD_CPUTIME_ID  쓰레드 단위 CPU 사용 시간

 

 

#define STR_TIME_FORMAT      "%y-%m-%d/%H:%M:%S"
char  buf[32];
size_t sz_buf = sizeof(buf);
struct timespec tspec;
struct tm   tm_now;
 
/* 리얼타임 시계로부터 현재 시간을 구한다. */
if (clock_gettime(CLOCK_REALTIME, &tspec) == -1) { 
    /* 에러 처리*/
}
 
/* timespec 구조체의 초수 필드(tv_sec)를 tm 구조체로 변환 */
localtime_r((time_t *)&tspec.tv_sec, &tm_now);
 
/* 문자열로 저장 */
if (strftime(buf, sz_buf, STR_TIME_FORMAT, &tm_now) == 0) {
    /* 에러 처리*/
}



출처: http://sunyzero.tistory.com/161 [Programmer]

반응형
Posted by 공간사랑
,