Scroll to navigation

ADJTIMEX(2) Linux-Programmierhandbuch ADJTIMEX(2)

BEZEICHNUNG

adjtimex - Kernel-Uhr einstellen

ÜBERSICHT

#include <sys/timex.h>
 
int adjtimex(struct timex *buf);

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.
 
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
 
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.
27. Mai 2004 Linux