티스토리 뷰
gettimeofday는 유닉스, 리눅스 시스템 프로그래밍에서 시간을 구할 때 쓰던 함수이다. 마이크로초(백만분의 1초)단위로 구할 수 있는 기능을 가지고 있어서 많이 사용되는 함수이다.
그러나 앞으로는 gettimeofday는 사용하지 말아야할 함수가 되었다. 왜냐하면 gettimeofday는 2008년도 유닉스 표준인 SUSv4-2008에서 앞으로 제거될 구식(obsolescent) 함수로 지정했기 때문이다.
물론 하위 호환성을 위해서 gettimeofday 함수는 계속 제공될 것이다. 하지만 기본 시스템 라이브러리에서는 제거되고, 구식 라이브러리를 따로 포함해야 사용할 수 있게 될지도 모르기 때문에 차후에는 gettimeofday는 쓰지 않는 편이 좋다. 참고로 지금까지의 표준안의 행보로 봤을 때 obsolescent 함수로 지정되면 약 10여년의 유예를 거치는 것 같다. 따라서 지금 당장부터 쓰지 말아야 하는 것은 아니다.
대신에 새로운 함수인 clock_gettime을 사용하면 된다.
CLOCK_REALTIME |
시스템 전역의 실제 시계(The UNIX Epoch 시간) |
CLOCK_MONOTONIC | 단조 시계 (특정 시점에서 흐른 시간, 대체적으로 부팅후 시간) |
CLOCK_PROCESS_CPUTIME_ID | 프로세스 단위 CPU 사용 시간 |
CLOCK_THREAD_CPUTIME_ID | 쓰레드 단위 CPU 사용 시간 |
#include <time.h>
/*
struct timespec {
time_t tv_sec; // seconds
long tv_nsec; // nanoseconds
};
*/
main()
{
struct timespec tp;
int rs;
rs = clock_gettime(CLOCK_REALTIME, &tp);
printf("%ld %ld\n", tp.tv_sec, tp.tv_nsec);
rs = clock_gettime(CLOCK_REALTIME, &tp);
printf("%ld %ld\n", tp.tv_sec, tp.tv_nsec);
return 0;
}
gcc -o a a.c -lrt
[출처] clock_gettime (나노세컨드 지원 리눅스 함수)|작성자 새미기픈
'Linux' 카테고리의 다른 글
[LINUX : Permission] chmod, chown, chgrp, chattr, lsattr (0) | 2015.02.07 |
---|---|
Embedded system을 위한 linux 최적화 기술 (0) | 2014.08.20 |
[Linux] setrlimit, getrlimit (0) | 2014.01.24 |
[Linux] Memory (0) | 2014.01.22 |
[Linux] Process (0) | 2014.01.22 |