> Linux Reviews > man >

adjtimex


  1. adjtimex.2.man


1. adjtimex.2.man

Manpage of ADJTIMEX

ADJTIMEX

Section: Linux Programmer's Manual (2)
Updated: 2004-05-27
Index Return to Main Contents
 

名前

adjtimex - カーネルの時計を調整する  

書式

#include <sys/timex.h>

int adjtimex(struct timex *buf);  

説明

Linux は David L. Mill の時計調節アルゴリズムを使用している (RFC 1305 を参照)。 システムコール 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 個以上の ビット 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_BAD 4 /* clock not synchronized */

失敗した場合は adjtimex() は -1 を返し、 errno が設定される。  

エラー

EFAULT
buf が書き込み可能なメモリを指していない。
EINVAL
buf.offset へ -131071 〜 +131071 の範囲以外の値を設定しようとしたか、 buf.status に上記以外の値を設定しようとしたか、 buf.tick に 900000/HZ 〜 1100000/HZ の範囲以外の値を設定しようとした。 ここで HZ はシステムのタイマー割り込みの周期である。
EPERM
buf.mode が 0 でなく、かつ呼び出し元が十分な特権を持っていない。 Linux では CAP_SYS_TIME ケーパビリティが必要である。
 

準拠

adjtimex() は Linux 特有であり、 移植を意図したプログラムで使用すべきではない。 システムクロックを調整する方法で、 移植性があるが自由度は劣る方法については adjtime(3) を参照のこと。  

関連項目

settimeofday(2), adjtime(3), capabilities(7), time(7)


 

Index

名前
書式
説明
返り値
エラー
準拠
関連項目

This document was created by man2html using the manual pages.
Time: 17:38:03 GMT, October 23, 2013

SVENSKA - SVENSKA - SVENSKA - SVENSKA - SVENSKA - pl - SVENSKA