adjtime(3) Library Functions Manual adjtime(3)

adjtime - Die Zeit zur Synchronisierung der Systemuhr korrigieren

Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

#include <sys/time.h>
int adjtime(const struct timeval *Delta, struct timeval *Altesdelta);
Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

adjtime():

    Seit Glibc 2.19:
        _DEFAULT_SOURCE
    Glibc 2.19 und älter:
        _BSD_SOURCE

Die Funktion adjtime() passt die Systemuhr (wie mittels gettimeofday(2) zurückgeliefert) graduell an. Der Zeitumfang, mit dem die Uhr angepasst werden soll, wird in der Struktur festgelegt, auf die Delta zeigt. Diese Struktur hat die folgende Form:


struct timeval {
    time_t      tv_sec;     /* Sekunden */
    suseconds_t tv_usec;    /* Mikrosekunden */
};

Falls die Anpassung in Delta positiv ist, dann wird die Systemuhr nur um einen kleinen Prozentsatz (d.h. jede Sekunde durch Hinzufügen einer kleinen Zeiteinheit zum Uhrenwert) beschleunigt, bis die Anpassung abgeschlossen ist. Falls die Anpassung in Delta negativ ist, wird die Uhr auf eine ähnliche Art verlangsamt.

Falls eine Uhranpassung von einem früherern Aufruf von adjtime() breits zum Zeitpunkt eines späteren Aufrufs von adjtime() in Arbeit ist und Delta beim späteren Aufruf nicht NULL ist, dann wird die frühere Anpassung gestoppt, aber der bereits durchgeführte Anteil der Anpassung wird nicht zurückgenommen.

Falls Altesdelta nicht NULL ist, dann wird der Puffer, auf den es zeigt, zur Rückgabe der Zeitmenge verwandt, die von vorhergehenden, noch nicht abgeschlossenen Anpassungen verbleibt.

Bei Erfolg gibt die Funktion adjtime() 0 zurück. Bei einem Fehler wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.

Die Anpassung in Delta ist außerhalb des erlaubten Bereichs.
Der Aufrufende hat keine ausreichenden Privilegien zur Zeitanpassung. Unter Linux wird die Capability CAP_SYS_TIME benötigt.

Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

Schnittstelle Attribut Wert
adjtime() Multithread-Fähigkeit MT-Safe

Keine.

4.3BSD, System V.

Die von adjtime() vorgenommenen Anpassungen der Uhr werden so ausgeführt, dass die Uhr immer monoton fortschreitet. Mit der Zeitanpassung durch adjtime() werden für bestimmte Anwendungen (z.B. make(1)) Probleme vermieden, die durch plötzliche positive oder negative Sprünge der Systemzeit hervorgerufen werden.

adjtime() ist zur Durchführung kleiner Anpassungen der Systemzeit gedacht. Die meisten Systeme beschränken die in Delta mögliche Anpassung. In der Glibc-Implementierung muss Delta kleiner oder gleich (INT_MAX / 1000000 - 2) und größer oder gleich (INT_MIN / 1000000 + 2) (2145 bzw. -2145 Sekunden auf I386) sein.

Lange existierte ein Fehler, der bei der Angabe von Delta als NULL dazu führte, dass keine gültigen Informationen über die ausstehenden Uhranpassungen in Altesdelta zurückgeliefert wurden. (In diesem Fall soll adjtime() die ausstehende Uhranpassung ohne sie zu ändern zurückliefern.) Dieser Fehler wurde in Systemen mit Glibc 2.8 oder neuer und Linux-Kernel 2.6.26 oder neuer behoben.

adjtimex(2), gettimeofday(2), time(7)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.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 die Mailingliste der Übersetzer.

20. Juli 2023 Linux man-pages 6.05.01