ADJTIMEX(2) | 리눅스 프로그램머 매뉴얼 | ADJTIMEX(2) |
이름¶
adjtimex - 커널 클럭을 조율한다.
사용법¶
#include <sys/timex.h>
int adjtimex(struct timex *buf);
설명¶
Linux 는 David L. Mills' 의 클럭 조정 알고리즘을 사용한다. adjtimex 는 이 알고리즘으로 조정 파라미터들을 읽고 설정할수 있다.
adjtimex 는 timex 구조체에 대한 포인터를 가지고 있고 필드 값들을 가지고 커널 파라미터들을 갱신하며 현재 커널 값을 가지고 있는 같은 구조체를 반환한다. 이 구조체는 다음과 같다:
struct timex {
int modes; /* mode selector */
long offset; /* time offset (usec) */
long freq; /* frequency offset (scaled ppm) */
long maxerror; /* maximum error (usec) */
long esterror; /* estimated error (usec) */
int status; /* clock command/status */
long constant; /* pll time constant */
long precision; /* clock precision (usec) (read only) */
long tolerance; /* clock frequency tolerance (ppm)
(read only) */
struct timeval time; /* current time (read only) */
long tick; /* usecs between clock ticks */ };
modes 필드는 설정된 파라미터가 무엇인지를 결정한다. 이것은 0 이나 다음 비트들의 bitwise-or 조합을 포함한다.
#define ADJ_OFFSET 0x0001 /* time offset */ #define ADJ_FREQUENCY 0x0002 /* frequency offset */ #define ADJ_MAXERROR 0x0004 /* maximum time error */ #define ADJ_ESTERROR 0x0008 /* estimated time error */ #define ADJ_STATUS 0x0010 /* clock status */ #define ADJ_TIMECONST 0x0020 /* pll time constant */ #define ADJ_TICK 0x4000 /* tick value */ #define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */
일반 유저는 mode가 0 값만으로 제한되어 있다.
슈퍼 유저만이 어떤
파라미터들도
설정할수 있다.
반환값¶
성공시, adjtimex 는 클럭 상태를 반환한다:
#define TIME_OK 0 /* clock synchronized */ #define TIME_INS 1 /* insert leap second */ #define TIME_DEL 2 /* delete leap second */ #define TIME_OOP 3 /* leap second in progress */ #define TIME_WAIT 4 /* leap second has occurred */ #define TIME_BAD 5 /* clock not synchronized */
실패시, adjtimex 는 -1을 반환하고 errno를 설정한다.
에러¶
호환¶
adjtimex 는 리눅스에 의존하며 호환성을 염두에 둔 프로그램에서는 사용해서는 안된다. SVr4 에는 비슷하지만 덜 일반적인 adjtime 시스템 함수가 있다.
관련 항목¶
역자¶
정강훈 <skyeyes@soback.korent.net>, 2000년 8월 7일
1997년 6월 30일 | Linux 2.0 |