table of contents
other sections
ADJTIMEX(2) | Linux-Programmierhandbuch | ADJTIMEX(2) |
BEZEICHNUNG¶
adjtimex - Kernel-Uhr einstellenÜBERSICHT¶
#include <sys/timex.h>BESCHREIBUNG¶
Linux verwendet den Algorithmus von David L. Mills für die Einstellung von Uhren (siehe RFC 1305). Der Systemaufruf adjtimex() liest und setzt optional Einstellparameter für diesen Algorithmus. Ihm wird ein Zeiger auf eine Struktur timex übergeben, aus deren Feldwerten er Kernel-Parameter aktualisiert. Abschließend werden die geänderten Parameter in der gleichen Struktur zurückgegeben. Die Struktur ist wie folgt deklariert:struct timex { int mode; /* Auswahl des Modus */ long offset; /* Zeit-Offset (µsek) */ long frequency; /* Frequenz-Offset (skalierte ppm) */ long maxerror; /* maximaler Fehler (µsek) */ long esterror; /* geschätzter Fehler (µsek) */ int status; /* Uhrbefehl/-status */ long time_constant; /* PLL-Zeitkonstante */ long precision; /* Uhrpräzision (µsek, nur lesbar) */ long tolerance; /* Toleranz der Uhrfrequenz (ppm, nur lesbar) */ struct timeval time; /* aktuelle Zeit (nur lesbar) */ long tick; /* µsek zwischen Uhrticks */ };
Das Feld modes bestimmt, welche Parameter, falls vorhanden, zu setzen sind. Es darf eine bitweise Oder-Verknüpfung von Null oder mehr der folgenden Bits enthalten:
#define ADJ_OFFSET 0x0001 /* Zeit-Offset */ #define ADJ_FREQUENCY 0x0002 /* Frequenz-Offset */ #define ADJ_MAXERROR 0x0004 /* maximaler Zeitfehler */ #define ADJ_ESTERROR 0x0008 /* geschätzter Zeitfehler */ #define ADJ_STATUS 0x0010 /* Uhrstatus */ #define ADJ_TIMECONST 0x0020 /* PLL-Zeitkonstante */ #define ADJ_TICK 0x4000 /* Tickwert */ #define ADJ_OFFSET_SINGLESHOT 0x8001 /* altmodisches adjtime() */
Normale Benutzer sind eingeschränkt auf einen Nullwert für mode. Nur der Superuser darf Parameter setzen.
RÜCKGABEWERT¶
Bei Erfolg gibt adjtimex() den Status der Uhr zurück:#define TIME_OK 0 /* Uhr synchronisiert */ #define TIME_INS 1 /* fügt Schaltsekunde ein */ #define TIME_DEL 2 /* löscht Schaltsekunde */ #define TIME_OOP 3 /* Schaltsekunde in Betrieb */ #define TIME_WAIT 4 /* Schaltsekunde ist aufgetreten */ #define TIME_BAD 5 /* Uhr nicht synchronisiert */
Im Fehlerfall gibt adjtimex -1 zurück und setzt errno.
FEHLER¶
- EFAULT
- buf zeigt nicht auf beschreibbaren Speicher.
- EINVAL
- Es wurde versucht, buf.offset auf einen Wert außerhalb des Bereichs von -131071 bis +131071 zu setzen, buf.status auf einen nicht oben aufgeführten Wert zu setzen oder buf.tick auf einen Wert außerhalb des Bereichs von 900000/ HZ bis 1100000/ HZ zu setzen, wobei HZ die Interruptfrequenz des System-Zeitgebers ist.
- EPERM
- buf.mode ist ungleich Null und der aufrufende Prozess verfügt nicht über ausreichende Privilegien. Unter Linux ist die CAP_SYS_TIME-Fähigkeit erforderlich.
KONFORM ZU¶
adjtimex() ist Linux-spezifisch und sollte nicht für portable Programme verwendet werden. adjtime(3) bietet eine besser portierbare, aber weniger flexible Methode für die Einstellung der Systemuhr.SIEHE AUCH¶
settimeofday(2), adjtime(3), capabilities(7), time(7)KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux- man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter http://www.kernel.org/doc/man-pages/.ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net> und Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> erstellt.27. Mai 2004 | Linux |