Manpages

이 름

adjtimex − 커 널 클 럭 을 조 율 한 다 .

사 용 법

#include <sys/timex.h>

int adjtimex(struct timex *buf);

설 명

Linux 는 David L. Mills’ 의 클 럭 조 정 알 고 리 즘 을 사 용 한 다 . adjtimex 는 이 알 고 리 즘 으 로 조 정 파 라 미 터 들 을 읽 고 설 정 할 수 있 다 .

adjtimextimex 구 조 체 에 대 한 포 인 터 를 가 지 고 있 고 필 드 값 들 을 가 지 고 커 널 파 라 미 터 들 을 갱 신 하 며 현 재 커 널 값 을 가 지 고 있 는 같 은 구 조 체 를 반 환 한 다 . 이 구 조 체 는 다 음 과 같 다 :

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를 설 정 한 다 .

에 러

EFAULT

buf 가 쓰 기 가 능 한 메 모 리 를 가 리 키 고 있 지 않 다 .

EPERM

buf.mode 가 non-zero이 고 사 용 자 는 슈 퍼 유 저 가 아 니 다 .

EINVAL

이 함 수 로 인 한 시 도 가 −131071 에 서 +131071 범 위 외 의 값 으 로 buf.offset 를 설 정 하 였 거 나 위 에 나 열 한 것 들 외 의 값 으 로 buf.status 를 설 정 하 였 거 나 900000/HZ 에 서 1100000/HZ범 위 외 의 값 으 로 buf.tick 를 설 정 하 였 다 . 여 기 서 HZ 는 시 스 템 타 이 머 인 터 럽 트 주 기 이 다 .

호 환

adjtimex 는 리 눅 스 에 의 존 하 며 호 환 성 을 염 두 에 둔 프 로 그 램 에 서 는 사 용 해 서 는 안 된 다 . SVr4 에 는 비 슷 하 지 만 덜 일 반 적 인 adjtime 시 스 템 함 수 가 있 다 .

관 련 항 목

settimeofday(2)

역 자

정 강 훈 <skyeyes [AT] soback.net>, 2000년 8월 7일