
gettimeofday 함수는 시스템 시간을 얻기 위한 함수로, timeval 구조체를 사용하여 현재 시간을 반환합니다.
timeval 구조체는 다음과 같은 필드를 가지고 있습니다.
- tv_sec: 초 단위 시간
- tv_usec: 마이크로초 단위 시간
gettimeofday 함수는 다음과 같은 형태로 사용됩니다.
#hostingforum.kr
c
int gettimeofday(struct timeval *tv, struct timezone *tz);
* tv: 현재 시간을 저장할 timeval 구조체의 주소
* tz: 시간대 정보를 저장할 timezone 구조체의 주소 (대부분의 시스템에서는 이 매개변수를 무시합니다.)
gettimeofday 함수는 성공 시 0을 반환하고, 실패 시 -1을 반환합니다. 에러 코드는 errno 변수에 저장됩니다.
gettimeofday 함수의 동작 원리는 다음과 같습니다.
1. 시스템 시간을 얻어옵니다.
2. timeval 구조체에 시스템 시간을 저장합니다.
3. timezone 구조체에 시간대 정보를 저장합니다 (대부분의 시스템에서는 이 단계를 무시합니다.)
gettimeofday 함수는 다음과 같은 에러 코드를 반환할 수 있습니다.
* EINVAL: tv나 tz이 NULL인 경우
* EFAULT: tv나 tz이 시스템에 의해 할당된 메모리가 아닌 경우
gettimeofday 함수를 사용할 때는 반드시 에러 처리를 해야 합니다. 에러 처리를 위해 다음과 같은 코드를 사용할 수 있습니다.
#hostingforum.kr
c
#include
#include
#include
int main() {
struct timeval tv;
struct timezone tz;
if (gettimeofday(&tv, &tz) == -1) {
perror("gettimeofday");
exit(EXIT_FAILURE);
}
printf("현재 시간: %ld 초 %ld 마이크로초n", tv.tv_sec, tv.tv_usec);
return 0;
}
이 코드는 gettimeofday 함수의 성공 여부를 확인하고, 성공 시 현재 시간을 출력합니다. 실패 시 perror 함수를 사용하여 에러 메시지를 출력하고, 프로그램을 종료합니다.
2025-04-08 22:24