Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- CU 편의점 추천
- 오뚜기 라면
- 편의점 추천
- 마켓컬리 추천
- 편의점 신제품
- 푸라닭
- 교촌치킨 신메뉴
- 서현역중식
- 황리단길기념품
- BBQ 신메뉴
- 서현 맛집
- 황리단길디저트
- 치킨 신메뉴
- 수지 술집
- cu 편의점
- 편스토랑
- 분당맛집
- 용인맛집
- 대구동성로맛집
- 황리단길맛집
- CU편의점
- 순천디저트
- 냉동만두 추천
- 수원 맛집
- 동성로맛집
- 순천맛집
- 경주맛집
- CU편의점 추천
- 서현역맛집
- 분당 맛집
Archives
- Today
- Total
일상 메모장
clock_gettime 사용법 (리눅스 정밀한 시간 얻어오기) 본문
사용법
#include <time.h>
int clock_gettime(clockid_t clk_id, struct timespec *tp);
//Link with -lrt (only for glibc version before 2.17)
정의
clock_gettime()함수는 clk_id 에 따른 시간을 나타냅니다.
tp 아규먼트는 timespec 구조체를 사용하고 이는 <time.h>에 정의되어 있습니다.
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
clk_id 아규먼트는 특수한 클럭에 대해서 정의되어 있습니다.
모든 구현은 시스템전체의 실시간 클럭을 지원합니다.
실시간 클럭은 CLOCK_REALTIME에 의해 실행됩니다. 시간은 초와 나노초를 나타냅니다.
nanosecond 는 1,000,000,000 가 1초인 시간입니다.
microsecond 는 1,000,000 가 1초인 시간입니다.
millisecond 는 1,000 가 1초인 시간입니다.
최근 clk_id 아규먼트 종류는 아래와 같습니다.
- CLOCK_REALTIME
- 시스템 전역의 실제 시간입니다.
- CLOCK_REALTIME_COARSE
- 시스템 전역의 실제시간인데, CLOCK_REALTIME 보다 실행시간이 많이 빠릅니다.
- 정확도가 떨어지는 대신 매우 빠른 function call 을 하고싶다면 이 아규먼트를 사용하면 됩니다.
- CLOCK_MONOTONIC
- 단조 시계로 특정시간부터 흐른 시간을 측정합니다. (일반적으로 부팅이후 시간)
- 시스템 관리자는 이 값을 초기화 할수 있습니다.
- CLOCK_MONOTONIC_COARSE
- 같은 단조 시계인데 매우 빠릅니다. 정확도가 떨어지는 대신 매우빠른 단조시계를 사용하려면 이 아규먼트를 사용하세요.
- CLOCK_MONOTONIC_RAW
- 위와 비슷하지만 NTP 조정이나 adjtime(3)에 대한 조정에 영향을 받지 않는 하드웨어 기반시간에 대한 접근을 제공합니다. 시스템이 절전 대기 시간은 포함하지 않습니다.
- CLOCK_BOOTTIME
- 위와 비슷하지만 시스템의 절전 대기 시간도 포함하는 시간입니다.
- CLOCK_PROCESS_CPUTIME_ID
- 프로세스별 cpu 시간 클럭. 프로세스내 모든 쓰레드들이 소모한 CPU 시간을 나타냅니다.
- CLOCK_THREAD_CPUTIME_ID
- 특정 쓰레드 한정 CPU 시간 클럭
반환 값
clock_gettime() 이 성공하면 0을 리턴하고, 실패하면 -1을 리턴합니다.
(errno 값이 셋팅되어집니다.)
에러값
- EFAULT
- tp 주소가 접근가능한 주소 공간 밖을 가르키고 있는경우.
- EINVAL
- clk_id 값이 이 시스템에서 지원하지 않는 값일 경우.
- EPERM
- clock_settime() 에서 클럭을 설정한 권한이 없는 경우.
'C 언어' 카테고리의 다른 글
pthread_create 사용법 및 예제 (2) | 2020.02.06 |
---|---|
strcpy 사용법 및 구현 - C 문자열 복사 (4) | 2020.02.03 |
memcpy 사용법 및 구현 - C 메모리 복사 (2) | 2020.01.29 |
memmove 사용법 및 구현 - C 메모리 이동 (11) | 2020.01.29 |
strchr 사용법 및 구현 - C 문자열 처리 (0) | 2020.01.21 |