Unix-system-calls-adjtimex
[top]#
|http://www.google.com/[Google] | a|
Web | This Site |
選択した読書
Copyright©2014 by finddevguides |
[cols=",,,,,,,",] |
| | Home | | References | | Discussion Forums | | About TP
[width="100%",cols="100%",] |
a| == adjtimex()-Unix、Linuxシステムコール
[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]
広告
NAME
adjtimex-カーネルクロックの調整
概要
#include <sys/timex.h> int adjtimex(struct timex* buf); |
説明
LinuxはDavid Lを使用します。 Millsのクロック調整アルゴリズム(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個以上のビット単位の組み合わせを含むことができます。
#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_の値がゼロに制限されています。 スーパーユーザーのみがパラメーターを設定できます。
返り値
成功すると、 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_を設定します。
エラー
Tag | Description |
---|---|
EFAULT | buf does not point to writable memory. |
EINVAL | An attempt is made to setbuf.offset to a value outside the range -131071 to +131071,or to set buf.status to a value other than those listed above,or to set buf.tick to a value outside the range 900000/HZ to 1100000/HZ, where HZ is the system timer interrupt frequency. |
*EPERM * | buf.mode is non-zero and the caller does not have sufficient privilege.Under Linux the* CAP_SYS_TIME* capability is required. |
準拠
*adjtimex* ()はLinux固有であり、移植を目的としたプログラムでは使用しないでください。 システムクロックを調整する、よりポータブルで柔軟性の低い方法については、 *adjtime* (3)を参照してください。
関連項目
[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]
広告
|
[cols="^",] |
|Advertisements