티스토리 뷰

Linux

clock_gettime

덕쑤 2014. 8. 11. 21:30

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


'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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
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
글 보관함