linux 에서 시간을 확인할 것이 필요해서 뭐 좀 찾아봤다.
linux 에서는 time.h 를 이용하여 시간 관련된 구조체를 선언 후 시스템에서 시간을 끌어와 사용 가능하다.
시간관련 구조체를 선언 후, gettimeofday라는 것을 호출하면 시간 구조체에 시간값을 가져오게 된다.
아래는 joinc 위키 에서 찾은 gettimeofday 관련된 예제 함수.
일일이 뺄 수도 있지만,
친절한 메크로씨는 이미 다 선언이 되어 있다.
위에 시간 구조체를 쓰기 위한 헤더들을 선언한다면
그 안에 되어 있으므로 아래 매크로를 쓰는것은 덤. ㅋㅋㅋ
( KLDP 에서 찾았다. )
사용만 하면 되는거다.
이런식으로 그냥 쓰면 되는거다. ㅋㅋ
linux 에서는 time.h 를 이용하여 시간 관련된 구조체를 선언 후 시스템에서 시간을 끌어와 사용 가능하다.
시간관련 구조체를 선언 후, gettimeofday라는 것을 호출하면 시간 구조체에 시간값을 가져오게 된다.
아래는 joinc 위키 에서 찾은 gettimeofday 관련된 예제 함수.
#include <sys/time.h>그러면 timeval 구조체에 tv_sec, tv_usec 안에 초, u초 가 들어오게 된다.
#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;
}
일일이 뺄 수도 있지만,
친절한 메크로씨는 이미 다 선언이 되어 있다.
위에 시간 구조체를 쓰기 위한 헤더들을 선언한다면
그 안에 되어 있으므로 아래 매크로를 쓰는것은 덤. ㅋㅋㅋ
( KLDP 에서 찾았다. )
# define timeradd(a, b, result) \
do { \
(result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \
(result)->tv_usec = (a)->tv_usec + (b)->tv_usec; \
if ((result)->tv_usec >= 1000000) \
{ \
++(result)->tv_sec; \
(result)->tv_usec -= 1000000; \
} \
} while (0)
# define timersub(a, b, result) \
do { \
(result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
(result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
if ((result)->tv_usec < 0) { \
--(result)->tv_sec; \
(result)->tv_usec += 1000000; \
} \
} while (0)
사용만 하면 되는거다.
// 헤더선언,
// 구조체 선언
gettimeofday(&mytime1, NULL);
// 실행코드
gettimeofday(&mytime2, NULL);
timersub(&mytime2, &mytime1, &result);
이런식으로 그냥 쓰면 되는거다. ㅋㅋ
'Study.. > Programming' 카테고리의 다른 글
문제가 있을 때는... (0) | 2009.08.06 |
---|---|
IAR 에서 printf 사용하기. (0) | 2009.06.30 |
race condition ( thread, mutex, semaphore) (0) | 2009.05.29 |
no newline at end of file (0) | 2009.05.29 |
Javascript 계산기 (0) | 2008.10.28 |