Joinc 팀블로그 리눅스 메뉴얼 정리 Joinc 위키
댓글

Recent Comments

Powered by Disqus
팀블로그 카테고리
  전체 (1105)
   공지사항 (1)
   검색엔진 (21)
   기술동향 (58)
   게임 (2)
   독서 (6)
   리눅스 (12)
   보안 (1)
   사회문제 (22)
   어셈블리 (43)
   영화 (3)
   오픈소스 (10)
   음악 (9)
   인물 (1)
   포인터 (4)
   프로그래머 (23)
   팀블로그 (20)
   테터툴즈 (29)
   C/C++ (152)
   FireFox (11)
   Gimp (2)
   Google (98)
   Java (13)
   Perl (2)
   Pthread (11)
   STL (13)
   TCP/IP (8)
   Tools (31)
   Web2.0 (42)
   Wiki (1)
«   2010/07   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
2007/05/25 01:12

gettimeofday - 현재 시간을 가져오고 시스템의 시간값을 설정한다.

최신문서는 Joinc Wiki 에서 확인하실 수 있습니다.

1장. gettimeofday(2)

차례
1.1. 사용법
1.2. 설명
1.3. 반환값
1.4. 에러
1.5. 예제
1.6. 참고문헌

현재 시간을 가져오고 시스템의 시간값을 설정한다.


1.1. 사용법

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

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


1.2. 설명

gettimeofday()은 time(2)와 매우 비슷하지만 마이크로초 단위의 시간 까지 되돌려준다. 현재는 time(2)를 대신해서 쓰이고 있으며, 가능한 time(2)대신 이 함수를 사용하는 걸 권장한다.

첫번째 인자인 tv는 현재 시스템 시간을 저장하기 위한 구조체로 다음과 같이 정의되어 있다.

struct timeval
{
long tv_sec; // 초
long tv_usec; // 마이크로초
}
두번째 인자인 tz은 타임존을 설정하기 위해서 사용된다.
struct timezone
{
int tz_minuteswest: // 그리니치 서측분차
int tz_dsttime // DST 보정타입(일광 절약시간)
}
현재 timezone 구조체는 사용되지 않고 있으며, 앞으로도 지원되지 않을 것이다. 간혹 커널 소스등에서 이 필드가 사용되는 경우가 있는데, 모든 경우에 버그로 판단되어서 무시한다. 복잡하게 생각할 필요 없이 tz은 NULL을 사용하도록 한다.


1.3. 반환값

성공하면 0 실패하면 -1을 리턴한다.


1.4. 에러

EFAULT

tv나 tz이 접근할 수 없는 영역을 가리키고 있다.


1.5. 예제

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

int main()
{
struct timeval mytime;

// 현재 시간을 얻어온다.
gettimeofday(&mytime, NULL);
printf("%ld:%ld\n", mytime.tv_sec, mytime.tv_usec);

// 시간을 1시간 뒤로 되돌려서 설정한다.
mytime.tv_sec -= 3600;
settimeofday(&mytime, NULL);
return 0;
}


1.6. 참고문헌

  1. Unix 시간 다루기


  2. time(2)

  3. stime(2)

:::