반응형

gettimeofday(2)

#include <sys/time.h>

int gettimeofday(struct timeval *tv, struct timezone *tz);

gettimeofday(2)함수는 1970-01-01 00:00:00 +0000 (UTC) 이후의 현재까지의 경과된 초와 micro초(백만분의 1초) 값을 얻는 함수입니다. 정밀한 시간 정보가 필요한 경우에 사용합니다. tz는 사용하지 않으므로 무시됩니다.

 

 

파라미터

tv
    - 1970-01-01 00:00:00 +0000 (UTC) 이후 경과된 초(seconds)와 micro초를 저장할 buffer
    - struct timeval는 아래와 같습니다.

struct timeval {
   time_t      tv_sec;     /* seconds */
   suseconds_t tv_usec;    /* microseconds */
};
tz
    - timezone 정보로 값은 무시되며, NULL을 사용함.
    - struct timezone는 아래와 같습니다. (사용하지 않음)

struct timezone {
   int tz_minuteswest;     /* minutes west of Greenwich */
   int tz_dsttime;         /* type of DST correction */
};

 

RETURN

0
    - 정상적으로 조회되었습니다.

-1
    - 오류가 발생하였으며, 상세한 오류는 errno 전역변수에 설정됩니다.
 EFAULT : tv 또는 tz의 메모리 영역이 유효하지 않은 영역입니다.

 


활용 예제

 

Sample

#include <sys/time.h>
#include <time.h>
#include <stdio.h>

int main(int argc, char **argv)
{
    time_t t;
    struct tm *lt;
    struct timeval tv;

    if((t = gettimeofday(&tv, NULL)) == -1) {
        perror("gettimeofday() call error");
        return -1;
    }

    if((lt = localtime(&tv.tv_sec)) == NULL) {
        perror("localtime() call error");
        return -1;
    }

    printf("지금시간: %04d-%02d-%02d %02d:%02d:%02d.%06d\n",
        lt->tm_year + 1900, lt->tm_mon + 1, lt->tm_mday,
        lt->tm_hour, lt->tm_min, lt->tm_sec, tv.tv_usec);

    return 0;
}
반응형
블로그 이미지

자연&사람

행복한 개발자 programmer since 1995.

,