adjtime(3)

BEZEICHNUNG
adjtime - Die Zeit zur Synchronisierung der Systemuhr korrigieren

BIBLIOTHEK
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

BESCHREIBUNG
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.

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

FEHLER

EINVAL
    Die Anpassung in Delta ist außerhalb des erlaubten Bereichs.

EPERM
    Der Aufrufende hat keine ausreichenden Privilegien zur Zeitanpassung. Unter Linux wird die Capability CAP_SYS_TIME benötigt.

ATTRIBUTE
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert
adjtime() | Multithread-Fähigkeit | MT-Sicher

STANDARDS
Keine.

GESCHICHTE
4.3BSD, System V.

ANMERKUNGEN
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 könnten.

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.

FEHLER
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.

SIEHE AUCH
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 (https://www.gnu.org/licenses/gpl-3.0.html) 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: debian-l10n-german@lists.debian.org.