adjtimex(2) - wariua/manpages-ko GitHub Wiki

NAME

adjtimex, ntp_adjtime - 컀널 클럭 μ‘°μ •

SYNOPSIS

#include <sys/timex.h>

int adjtimex(struct timex *buf);

int ntp_adjtime(struct timex *buf);

DESCRIPTION

λ¦¬λˆ…μŠ€μ—μ„œλŠ” David L. Mills의 클럭 μ‘°μ • μ•Œκ³ λ¦¬μ¦˜(RFC 5905)을 μ‚¬μš©ν•œλ‹€. μ‹œμŠ€ν…œ 호좜 adjtimex()λŠ” 이 μ•Œκ³ λ¦¬μ¦˜μ˜ μ‘°μ • λ§€κ°œλ³€μˆ˜λ“€μ„ 읽고 μ„€μ •ν•œλ‹€. timex ꡬ쑰체 포인터λ₯Ό λ°›μ•„μ„œ (μ„ νƒλœ) ν•„λ“œ κ°’λ“€λ‘œ 컀널 λ§€κ°œλ³€μˆ˜λ₯Ό κ°±μ‹ ν•˜κ³ , κ·Έ ꡬ쑰체λ₯Ό ν˜„ν–‰ 컀널 κ°’λ“€λ‘œ κ°±μ‹ ν•΄μ„œ λ°˜ν™˜ν•œλ‹€. κ΅¬μ‘°μ²΄λŠ” λ‹€μŒκ³Ό 같이 선언돼 μžˆλ‹€.

struct timex {
    int  modes;      /* λ™μž‘ 선택 */
    long offset;     /* μ‹œκ°„ μ˜€ν”„μ…‹. μƒνƒœ ν”Œλž˜κ·Έ STA_NANOκ°€
                        섀정돼 있으면 λ‚˜λ…Έμ΄ˆ, μ•„λ‹ˆλ©΄
                        마이크둜초 */
    long freq;       /* μ§„λ™μˆ˜ μ˜€ν”„μ…‹. λ‹¨μœ„λŠ” NOTES μ°Έκ³  */
    long maxerror;   /* μ΅œλŒ€ 였차 (마이크둜초) */
    long esterror;   /* μΆ”μ • 였차 (마이크둜초) */
    int  status;     /* 클럭 λͺ…λ Ή/μƒνƒœ */
    long constant;   /* μœ„μƒ 동기 루프(PLL) μ‹œκ°„ μƒμˆ˜ */
    long precision;  /* 클럭 정밀도
                        (마이크둜초, 읽기 μ „μš©) */
    long tolerance;  /* 클럭 μ§„λ™μˆ˜ ν—ˆμš© 였차 (읽기 μ „μš©).
                        λ‹¨μœ„λŠ” NOTES μ°Έκ³  */
    struct timeval time;
                     /* ν˜„μž¬ μ‹œκ°„. (읽기 μ „μš©, ADJ_SETOFFSET에선
                        μ˜ˆμ™Έ.) λ°˜ν™˜ μ‹œ time.tv_usec에 λ‹΄κΈ°λŠ”
                        값이 STA_NANO μƒνƒœ ν”Œλž˜κ·Έκ°€ 섀정돼
                        있으면 λ‚˜λ…Έμ΄ˆ, μ•„λ‹ˆλ©΄ 마이크둜초 */
    long tick;       /* 클럭 ν‹± 간격 (마이크둜초) */
    long ppsfreq;    /* νŽ„μŠ€ 반볡(PPS) μ§„λ™μˆ˜
                        (읽기 μ „μš©). λ‹¨μœ„λŠ” NOTES μ°Έκ³  */
    long jitter;     /* PPS μ§€ν„° (읽기 μ „μš©). μƒνƒœ ν”Œλž˜κ·Έ
                        STA_NANOκ°€ 섀정돼 있으면 λ‚˜λ…Έμ΄ˆ,
                        μ•„λ‹ˆλ©΄ 마이크둜초 */
    int  shift;      /* PPS ꡬ간 길이
                        (초, 읽기 μ „μš©) */
    long stabil;     /* PPS μ•ˆμ •μ„± (읽기 μ „μš©).
                        λ‹¨μœ„λŠ” NOTES μ°Έκ³  */
    long jitcnt;     /* PPS μ§€ν„° μ œν•œ 초과 λ°œμƒ 횟수
                        (읽기 μ „μš©) */
    long calcnt;     /* PPS 보정 ꡬ간 수 (읽기 μ „μš©) */
    long errcnt;     /* PPS 보정 였λ₯˜ 횟수 (읽기 μ „μš©) */
    long stbcnt;     /* PPS μ•ˆμ •μ„± μ œν•œ 초과 λ°œμƒ 횟수
                        (읽기 μ „μš©) */
    int tai;         /* TAI μ˜€ν”„μ…‹. μ•žμ„  ADJ_TAI λ™μž‘μ—μ„œ
                        μ„€μ •ν•œ κ°’. (초, 읽기 μ „μš©,
                        λ¦¬λˆ…μŠ€ 2.6.26λΆ€ν„°.) */
    /* ν–₯ν›„ ν™•μž₯을 μœ„ν•œ μΆ”κ°€ νŒ¨λ”© λ°”μ΄νŠΈ */
};

modes ν•„λ“œκ°€ μ„€μ •ν•  λ§€κ°œλ³€μˆ˜λ₯Ό κ²°μ •ν•œλ‹€. (μž μ‹œ ν›„ μ„€λͺ…ν•˜κ² μ§€λ§Œ ntp_adjtime()μ—λŠ” λ™λ“±ν•˜μ§€λ§Œ 이름이 λ‹€λ₯Έ μƒμˆ˜λ“€μ„ μ“΄λ‹€.) κ·Έ ν•„λ“œλŠ” λ‹€μŒ λΉ„νŠΈλ“€μ„ 0개 이상 λΉ„νŠΈ or μ‘°ν•©ν•΄μ„œ 담은 λΉ„νŠΈ λ§ˆμŠ€ν¬μ΄λ‹€.

ADJ_OFFSET
buf.offset으둜 μ‹œκ°„ μ˜€ν”„μ…‹ μ„€μ •. λ¦¬λˆ…μŠ€ 2.6.26λΆ€ν„°λŠ” 제곡된 값을 (-0.5s, +0.5s) λ²”μœ„λ‘œ μž˜λΌλ‚Έλ‹€. 이전 μ»€λ„μ—μ„œλŠ” 제곡된 값이 λ²”μœ„λ₯Ό λ²—μ–΄λ‚˜λ©΄ EINVAL 였λ₯˜κ°€ λ°œμƒν•œλ‹€.
ADJ_FREQUENCY
buf.freq둜 μ§„λ™μˆ˜ μ˜€ν”„μ…‹ μ„€μ •. λ¦¬λˆ…μŠ€ 2.6.26λΆ€ν„°λŠ” 제곡된 값을 (-32768000, +32768000) λ²”μœ„λ‘œ μž˜λΌλ‚Έλ‹€. 이전 μ»€λ„μ—μ„œλŠ” 제곡된 값이 λ²”μœ„λ₯Ό λ²—μ–΄λ‚˜λ©΄ EINVAL 였λ₯˜κ°€ λ°œμƒν•œλ‹€.
ADJ_MAXERROR
buf.maxerror둜 μ΅œλŒ€ μ‹œκ°„ 였차 μ„€μ •.
ADJ_ESTERROR
buf.esterror둜 μΆ”μ • μ‹œκ°„ 였차 μ„€μ •.
ADJ_STATUS
buf.status둜 클럭 μƒνƒœ λΉ„νŠΈ μ„€μ •. 이 λΉ„νŠΈλ“€μ— λŒ€ν•΄μ„  μ•„λž˜μ—μ„œ μ„€λͺ…ν•œλ‹€.
ADJ_TIMECONST
buf.constant둜 PLL μ‹œκ°„ μƒμˆ˜ μ„€μ •. STA_NANO μƒνƒœ ν”Œλž˜κ·Έ(μ•„λž˜ μ°Έκ³ )κ°€ ν•΄μ œλΌ 있으면 μ»€λ„μ—μ„œ 이 값에 4λ₯Ό λ”ν•œλ‹€.
ADJ_SETOFFSET (λ¦¬λˆ…μŠ€ 2.6.39λΆ€ν„°)
ν˜„μž¬ μ‹œκ°„μ— buf.time λ”ν•˜κΈ°. buf.status에 ADJ_NANO ν”Œλž˜κ·Έκ°€ 포함돼 있으면 buf.time.tv_usec을 λ‚˜λ…Έμ΄ˆ κ°’μœΌλ‘œ ν•΄μ„ν•œλ‹€. μ•„λ‹ˆλ©΄ 마이크둜초둜 ν•΄μ„ν•œλ‹€.
ADJ_MICRO (λ¦¬λˆ…μŠ€ 2.6.26λΆ€ν„°)
마이크둜초 정밀도 선택.
ADJ_NANO (λ¦¬λˆ…μŠ€ 2.6.26λΆ€ν„°)
λ‚˜λ…Έμ΄ˆ 정밀도 선택. ADJ_MICRO와 ADJ_NANO 쀑 ν•˜λ‚˜λ§Œ μ§€μ •ν•΄μ•Ό ν•œλ‹€.
ADJ_TAI (λ¦¬λˆ…μŠ€ 2.6.26λΆ€ν„°)

buf.tai둜 κ΅­μ œμ›μžμ‹œ(TAI) μ˜€ν”„μ…‹ μ„€μ •.

ADJ_TAIλ₯Ό ADJ_TIMECONST와 ν•¨κ»˜ μ“°μ§€ 말아야 ν•œλ‹€. κ·Έ λͺ¨λ“œμ—μ„œλ„ buf.constant ν•„λ“œλ₯Ό μ΄μš©ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

TAIκ°€ 무엇이고 TAI와 UTC의 차이가 뭔지에 λŒ€ν•œ μ„€λͺ…은 BIPM(http://www.bipm.org/en/bipm/tai/tai.html) μ°Έκ³ .

ADJ_TICK
buf.tick으둜 ν‹± 값을 μ„€μ •.

λ˜λŠ” modes에 λ‹€μŒ (μ—¬λŸ¬ λΉ„νŠΈλ‘œ 된 마슀크) κ°’λ“€ 쀑 ν•˜λ‚˜λ₯Ό μ§€μ •ν•  μˆ˜λ„ 있으며, κ·Έ 경우 modes에 λ‹€λ₯Έ λΉ„νŠΈλ“€μ€ μ§€μ •ν•˜μ§€ 말아야 ν•œλ‹€.

ADJ_OFFSET_SINGLESHOT
ꡬ식 adjtime() 방식: buf.offset에 마이크둜초 λ‹¨μœ„λ‘œ μ§€μ •λœ μ‘°μ • 값에 따라 μ‹œκ°„μ„ (μ μ§„μ μœΌλ‘œ) μ‘°μ •ν•œλ‹€.
ADJ_OFFSET_SS_READ (λ¦¬λˆ…μŠ€ 2.6.28λΆ€ν„° λ™μž‘)
μ•žμ„  ADJ_OFFSET_SINGLESHOT λ™μž‘ 후에 남은 μ‘°μ • μ‹œκ°„ 양을 (buf.offset으둜) λ°˜ν™˜ν•œλ‹€. 이 κΈ°λŠ₯은 λ¦¬λˆ…μŠ€ 2.6.24μ—μ„œ μΆ”κ°€λ˜μ—ˆλŠ”λ° λ¦¬λˆ…μŠ€ 2.6.28κΉŒμ§€λŠ” μ˜¬λ°”λ‘œ λ™μž‘ν•˜μ§€ μ•Šμ•˜λ‹€.

일반 μ‚¬μš©μžλŠ” modes에 0 λ˜λŠ” ADJ_OFFSET_SS_READ κ°’λ§Œ μ§€μ •ν•  수 μžˆλ‹€. μˆ˜νΌμœ μ €λ§Œ λ§€κ°œλ³€μˆ˜ 섀정을 ν•  수 μžˆλ‹€.

buf.status ν•„λ“œλŠ” NTP κ΅¬ν˜„κ³Ό κ΄€λ ¨λœ μƒνƒœ λΉ„νŠΈλ₯Ό μ„€μ • 및/λ˜λŠ” μ‘°νšŒν•˜λŠ” 데 μ“°λŠ” λΉ„νŠΈ λ§ˆμŠ€ν¬μ΄λ‹€. 마슀크의 일뢀 λΉ„νŠΈλŠ” 읽기와 섀정이 λͺ¨λ‘ κ°€λŠ₯ν•˜μ§€λ§Œ λ‚˜λ¨Έμ§€λŠ” 읽기 μ „μš©μ΄λ‹€.

STA_PLL (읽기-μ“°κΈ°)
ADJ_OFFSET을 ν†΅ν•œ μœ„μƒ 동기 루프(PLL) κ°±μ‹  ν™œμ„±ν™”.
STA_PPSFREQ (읽기-μ“°κΈ°)
νŽ„μŠ€ 반볡(PPS) μ§„λ™μˆ˜ μ‘°μ • ν™œμ„±ν™”.
STA_PPSTIME (읽기-μ“°κΈ°)
PPS μ‹œκ°„ μ‘°μ • ν™œμ„±ν™”.
STA_FLL (읽기-μ“°κΈ°)
μ§„λ™μˆ˜ 동기 루프(FLL) λͺ¨λ“œ 선택.
STA_INS (읽기-μ“°κΈ°)
κ·Έ UTC 일의 λ§ˆμ§€λ§‰ 초 λ‹€μŒμ— 윀초λ₯Ό μ‚½μž…ν•œλ‹€. κ·Έλž˜μ„œ κ·Έ λ‚ μ˜ λ§ˆμ§€λ§‰ 뢄을 1초만큼 λŠ˜μΈλ‹€. 이 ν”Œλž˜κ·Έκ°€ 섀정돼 μžˆλŠ” λ™μ•ˆμ€ 맀일 윀초 μ‚½μž…μ΄ μΌμ–΄λ‚˜κ²Œ λœλ‹€.
STA_DEL (읽기-μ“°κΈ°)
κ·Έ UTC 일의 λ§ˆμ§€λ§‰ μ΄ˆμ—μ„œ 윀초λ₯Ό μ‚­μ œν•œλ‹€. 이 ν”Œλž˜κ·Έκ°€ 섀정돼 μžˆλŠ” λ™μ•ˆμ€ 맀일 윀초 μ‚­μ œκ°€ μΌμ–΄λ‚˜κ²Œ λœλ‹€.
STA_UNSYNC (읽기-μ“°κΈ°)
클럭이 비동기 μƒνƒœμž„.
STA_FREQHOLD (읽기-μ“°κΈ°)

μ§„λ™μˆ˜ μœ μ§€. 보톡 ADJ_OFFSET을 톡해 쑰정을 ν•˜λ©΄ μ§„λ™μˆ˜ 감쇄 쑰정도 μ΄λ€„μ§€κ²Œ λœλ‹€. κ·Έλž˜μ„œ 호좜 ν•œ λ²ˆμœΌλ‘œλŠ” ν˜„μž¬ μ˜€ν”„μ…‹μ„ λ°”λ‘œμž‘κ³ , 같은 λ°©ν–₯으둜 μ˜€ν”„μ…‹ 정정이 λ°˜λ³΅ν•΄μ„œ 이뀄지면 μž‘μ€ μ§„λ™μˆ˜ 쑰정이 λˆ„μ λΌμ„œ μž₯기적인 μ™œκ³‘μ„ μˆ˜μ •ν•˜κ²Œ λœλ‹€.

이 ν”Œλž˜κ·ΈλŠ” ADJ_OFFSET κ°’μœΌλ‘œ 정정을 ν•  λ•Œ κ·Έ μž‘μ€ μ§„λ™μˆ˜ 쑰정이 이뀄지지 μ•Šκ²Œ ν•œλ‹€.

STA_PPSSIGNAL (읽기 μ „μš©)
μœ νš¨ν•œ νŽ„μŠ€ 반볡(PPS) μ‹ ν˜Έ 있음.
STA_PPSJITTER (읽기 μ „μš©)
PPS μ‹ ν˜Έ μ§€ν„° 초과.
STA_PPSWANDER (읽기 μ „μš©)
PPS μ‹ ν˜Έ 원더 초과.
STA_PPSERROR (읽기 μ „μš©)
PPS μ‹ ν˜Έ 보정 였λ₯˜.
STA_CLOCKERR (읽기 μ „μš©)
클럭 ν•˜λ“œμ›¨μ–΄ μ˜€λ™μž‘.
STA_NANO (읽기 μ „μš©, λ¦¬λˆ…μŠ€ 2.6.26λΆ€ν„°)
해상도 (0 = 마이크둜초, 1 = λ‚˜λ…Έμ΄ˆ). ADJ_NANOλ₯Ό 톡해 μ„€μ •ν•˜κ³  ADJ_MICROλ₯Ό 톡해 ν•΄μ œν•œλ‹€.
STA_MODE (λ¦¬λˆ…μŠ€ 2.6.26λΆ€ν„°)
λͺ¨λ“œ (0 = μœ„μƒ 동기 루프, 1 = μ§„λ™μˆ˜ 동기 루프).
STA_CLK (읽기 μ „μš©, λ¦¬λˆ…μŠ€ 2.6.26λΆ€ν„°)
클럭 μ›μ²œ (0 = A, 1 = B). ν˜„μž¬ μ“°μ§€ μ•ŠμŒ.

읽기 μ „μš©μΈ status λΉ„νŠΈλ₯Ό μ„€μ •ν•˜λ €κ³  μ‹œλ„ν•˜λ©΄ 쑰용히 λ¬΄μ‹œν•œλ‹€.

ntp_adjtime()

(NTP "Kernel Application Program API", 즉 KAPI에 기술돼 μžˆλŠ”) ntp_adjtime() 라이브러리 ν•¨μˆ˜λŠ” adjtimex()와 같은 일을 μˆ˜ν–‰ν•  수 μžˆλŠ” 더 이식성 쒋은 μΈν„°νŽ˜μ΄μŠ€μ΄λ‹€. λ‹€μŒ 사항듀을 μ œμ™Έν•˜λ©΄ adjtime()κ³Ό λ™μΌν•˜λ‹€.

  • modes에 μ“°λŠ” μƒμˆ˜λ“€μ΄ "ADJ_" λŒ€μ‹  "MOD_"둜 μ‹œμž‘ν•˜κ³  뒷뢀뢄이 κ°™λ‹€. (즉 MOD_OFFSET, MOD_FREQUENCY 등이닀.) 단 μ•„λž˜ ν•­λͺ©λ“€μ€ μ˜ˆμ™Έμ΄λ‹€.

  • ADJ_OFFSET_SINGLESHOT의 λ™μ˜μ–΄λŠ” MOD_CLKA이닀.

  • ADJ_TICK의 λ™μ˜μ–΄λŠ” MOD_CLKB이닀.

  • KAPI에 기술돼 μžˆμ§€ μ•Šμ€ ADJ_OFFSET_SS_READ의 λ™μ˜μ–΄λŠ” μ—†λ‹€.

RETURN VALUE

성곡 μ‹œ adjtimex() 및 ntp_adjtime()은 클럭 μƒνƒœλ₯Ό λ°˜ν™˜ν•œλ‹€. 즉 λ‹€μŒ κ°’λ“€ 쀑 ν•˜λ‚˜λ₯Ό λ°˜ν™˜ν•œλ‹€.

TIME_OK
클럭이 동기화돼 있고 λŒ€κΈ° 쀑인 윀초 쑰정이 μ—†λ‹€.
TIME_INS
κ·Έ UTC 일 λμ—μ„œ μœ€μ΄ˆκ°€ 좔가될 κ²ƒμž„μ„ λ‚˜νƒ€λ‚Έλ‹€.
TIME_DEL
κ·Έ UTC 일 λμ—μ„œ μœ€μ΄ˆκ°€ μ‚­μ œλ  κ²ƒμž„μ„ λ‚˜νƒ€λ‚Έλ‹€.
TIME_OOP
윀초 μ‚½μž…μ΄ μ§„ν–‰ 쀑이닀.
TIME_WAIT
윀초 μ‚½μž… λ‚΄μ§€ μ‚­μ œκ°€ μ™„λ£Œλλ‹€. λ‹€μŒ ADJ_STATUS λ™μž‘μ—μ„œ STA_INS 및 STA_DEL ν”Œλž˜κ·Έλ₯Ό ν•΄μ œν•  λ•ŒκΉŒμ§€ 이 값이 λ°˜ν™˜λœλ‹€.
TIME_ERROR

μ‹œμŠ€ν…œ 클럭이 믿을 λ§Œν•œ μ„œλ²„μ— 동기화돼 μžˆμ§€ μ•Šλ‹€. λ‹€μŒ 쀑 ν•˜λ‚˜λΌλ„ 참일 λ•Œ 이 값이 λ°˜ν™˜λœλ‹€.

  • STA_UNSYNCλ‚˜ STA_CLOCKERR 쀑 ν•˜λ‚˜κ°€ 섀정돼 μžˆλ‹€.

  • STA_PPSSIGNAL이 ν•΄μ œλΌ μžˆμœΌλ©΄μ„œ STA_PPSFREQλ‚˜ STA_PPSTIME이 섀정돼 μžˆλ‹€.

  • STA_PPSTIMEκ³Ό STA_PPSJITTERκ°€ λͺ¨λ‘ 섀정돼 μžˆλ‹€.

  • STA_PPSFREQκ°€ 섀정돼 μžˆμœΌλ©΄μ„œ STA_PPSWANDERλ‚˜ STA_PPSJITTERκ°€ 섀정돼 μžˆλ‹€.

심볼 이름 TIME_BADλŠ” TIME_ERROR의 λ™μ˜μ–΄μ΄λ©° ν•˜μœ„ ν˜Έν™˜μ„±μ„ μœ„ν•΄ μ œκ³΅λœλ‹€.

참고둜 λ¦¬λˆ…μŠ€ 3.4λΆ€ν„°λŠ” 호좜이 λΉ„λ™κΈ°μ μœΌλ‘œ λ™μž‘ν•˜λ―€λ‘œ 일반적으둜 λ°˜ν™˜ 값이 κ·Έ 호좜 자체둜 μΈν•œ μƒνƒœ λ³€ν™”λ₯Ό λ°˜μ˜ν•˜μ§€ μ•Šκ²Œ λœλ‹€.

μ‹€νŒ¨ μ‹œ 이 ν˜ΈμΆœλ“€μ€ -1을 λ°˜ν™˜ν•˜κ³  errnoλ₯Ό μ„€μ •ν•œλ‹€.

ERRORS

EFAULT
bufκ°€ μ“°κΈ° κ°€λŠ₯ν•œ λ©”λͺ¨λ¦¬λ₯Ό 가리킀고 μžˆμ§€ μ•Šλ‹€.
EINVAL (λ¦¬λˆ…μŠ€ 2.6.26 μ „ 컀널)
buf.freqλ₯Ό λ²”μœ„ (-33554432, +33554432) λ°–μ˜ κ°’μœΌλ‘œ μ„€μ •ν•˜λ € ν–ˆλ‹€.
EINVAL (λ¦¬λˆ…μŠ€ 2.6.26 μ „ 컀널)
buf.offset을 ν—ˆμš© λ²”μœ„ λ°–μ˜ κ°’μœΌλ‘œ μ„€μ •ν•˜λ € ν–ˆλ‹€. λ¦¬λˆ…μŠ€ 2.0 μ „μ˜ μ»€λ„μ—μ„œλŠ” ν—ˆμš© λ²”μœ„κ°€ (-131072, +131072)μ˜€λ‹€. λ¦¬λˆ…μŠ€ 2.0λΆ€ν„°λŠ” ν—ˆμš© λ²”μœ„κ°€ (-512000, +512000)이닀.
EINVAL
buf.statusλ₯Ό μœ„μ— λ‚˜μ—΄λœ 것 μ™Έμ˜ κ°’μœΌλ‘œ μ„€μ •ν•˜λ € ν–ˆλ‹€.
EINVAL
buf.tick을 900000/HZμ—μ„œ 1100000/HZκΉŒμ§€ λ²”μœ„ λ°–μ˜ κ°’μœΌλ‘œ μ„€μ •ν•˜λ € ν–ˆλ‹€. μ—¬κΈ°μ„œ HZλŠ” μ‹œμŠ€ν…œ 타이머 μΈν„°λŸ½νŠΈ λΉˆλ„μ΄λ‹€.
EPERM
buf.modesκ°€ 0μ΄λ‚˜ ADJ_OFFSET_SS_READκ°€ μ•„λ‹ˆλ©° ν˜ΈμΆœμžμ—κ²Œ μΆ©λΆ„ν•œ 특ꢌ이 μ—†λ‹€. λ¦¬λˆ…μŠ€μ—μ„œλŠ” CAP_SYS_TIME μ—­λŠ₯이 ν•„μš”ν•˜λ‹€.

ATTRIBUTES

이 μ ˆμ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄λ“€μ— λŒ€ν•œ μ„€λͺ…은 attributes(7)λ₯Ό 보라.

μΈν„°νŽ˜μ΄μŠ€ 속성 κ°’
ntp_adjtime() μŠ€λ ˆλ“œ μ•ˆμ „μ„± MT-Safe

CONFORMING TO

이 μΈν„°νŽ˜μ΄μŠ€λ“€ 쀑 μ–΄λŠ 것도 POSIX.1에 기술돼 μžˆμ§€ μ•Šλ‹€.

adjtimex()λŠ” λ¦¬λˆ…μŠ€ μ „μš©μ΄λ―€λ‘œ 이식성이 μžˆμ–΄μ•Ό ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” μ‚¬μš©ν•˜μ§€ 말아야 ν•œλ‹€.

NTP 데λͺ¬μ—κ²Œ μ λ‹Ήν•œ APIλŠ” ntp_adjtime()이닀.

NOTES

timex κ΅¬μ‘°μ²΄μ—μ„œ freq, ppsfreq, stabil은 λ°±λ§ŒλΆ„μœ¨(ppm)이고 16λΉ„νŠΈλŠ” μ†Œμˆ˜λΆ€μ΄λ‹€. 즉 κ·Έ ν•„λ“œλ“€μ—μ„œ κ°’ 1은 2^-16 ppm을 λœ»ν•˜κ³  2^16=65536이 1 ppm이닀. μž…λ ₯ κ°’(freq)κ³Ό 좜λ ₯ κ°’ λͺ¨λ‘μ—μ„œ κ·Έλ ‡λ‹€.

STA_INS 및 STA_DEL둜 μΈν•œ 윀초 μ²˜λ¦¬λŠ” 컀널 타이머 λ¬Έλ§₯μ—μ„œ 이뀄진닀. λ”°λΌμ„œ 윀초λ₯Ό μΆ”κ°€ λ‚΄μ§€ μ‚­μ œν•˜λ €λ©΄ μ΄ˆλ‹Ή ν•œ 틱이 걸리게 λœλ‹€.

SEE ALSO

settimeofday(2), adjtime(3), ntp_gettime(3), capabilities(7), time(7), adjtimex(8), hwclock(8)

NTP "Kernel Application Program Interface" (http://www.slac.stanford.edu/comp/unix/package/rtems/src/ssrlApps/ntpNanoclock/api.htm)


2019-03-06

⚠️ **GitHub.com Fallback** ⚠️