반응형
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;
}
반응형
'C언어 header > sys | time.h' 카테고리의 다른 글
settimeofday(2) - 시스템 시간을 변경하기(micro초 단위) (0) | 2019.09.29 |
---|