Unix-system-calls-adjtimex

提供:Dev Guides
移動先:案内検索

[top]#

|http://www.google.com/[Google] | a|

Web This Site
  • 初心者向けのUnix *
  • 高度なUnix *

選択した読書

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