adjtime(3)

NOME
adjtime - corregge l'orario per sincronizzare l'orologio di sistema

LIBRARY
Standard C library (libc, -lc)

SINTASSI
#include <sys/time.h>

int adjtime(const struct timeval *delta, struct timeval *olddelta);

    Macro per test di funzionalità per glibc (vedere feature_test_macros(7)):

adjtime():
    A partire da glibc 2.19:
        _DEFAULT_SOURCE
    glibc 2.19 e precedenti:
        _BSD_SOURCE

DESCRIZIONE
La funzione adjtime() regola in modo graduale l'orario di sistema (restituito da gettimeofday(2)). L'ammontare di tempo con cui regolare l'orologio è specificato nella struttura a cui punta delta. Questa struttura ha la forma seguente:

    struct timeval {
        time_t      tv_sec;     /* secondi */
        suseconds_t tv_usec;    /* microsecondi */
    };

Se la regolazione di delta è positiva, l'orologio di sistema viene accelerato di qualche punto percentuale (per esempio aggiungendo una piccola quantità di tempo al valore dell'orario per ogni secondo) finché la regolazione non è stata completata. Se la regolazione di delta è negativa, l'orologio viene rallentato in maniera simile.

Se si verifica una chiamata ad adjtime() mentre è in corso una regolazione dell'orario relativa ad una chiamata precedente di adjtime(), e delta non è NULL per l'ultima chiamata, la chiamata precedente viene terminata, senza però scartare alcuna correzione già completata.

Se olddelta non è NULL, allora il buffer a cui punta viene usato per restituire l'ammontare di tempo rimanente dalle precedenti correzioni non ancora completate.

VALORE RESTITUITO
Se termina con successo, adjtime() restituisce 0. Se fallisce, viene restituito -1, e errno viene valorizzato per indicare l'errore.

ERRORI

EINVAL
    La correzione in delta è fuori dall'intervallo permesso.

EPERM
    Il chiamante non ha privilegi sufficienti per correggere l'orario. Sotto Linux è richiesta l'abilitazione a CAP_SYS_TIME.

ATTRIBUTI
Per la spiegazione dei termini usati in questa sezione, vedere attributes(7).
Interfaccia | Attributo | Valore
adjtime() | Thread safety | MT-Safe

STANDARDS
4.3BSD, System V.

NOTE
La correzione che adjtime() effettua sull'orologio viene eseguita in modo che quest'ultimo venga sempre incrementato uniformemente. Usando adjtime() per correggere l'orario si evitano problemi di funzionamento per certe applicazioni (per esempio, make(1)) dovuti a improvvise variazioni positive o negative dell'orario di sistema.

adjtime() è stato progettato per effettuare piccole correzioni all'orario di sistema. Molti sistemi impongono un limite alla correzione, che può essere specificato in delta. Nell'implementazione di glibc, delta dev'essere minore o uguale a (INT_MAX / 1000000 - 2) e maggiore o uguale a (INT_MIN / 1000000 + 2) (rispettivamente 2145 e -2145 secondi su i386).

BUG
Un bug di vecchia data faceva in modo che, se delta veniva valorizzato a NULL, a olddelta non veniva restituita alcuna informazione valida riguardo la correzione in sospeso dell'orologio. (In questo caso, adjtime() dovrebbe restituire la correzione dell'orario in sospeso, senza cambiarla.) Questo bug è stato risolto su sistemi con glibc versione 2.8 o successiva, e con kernel Linux versione 2.6.26 o successivo.

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

TRADUZIONE
La traduzione italiana di questa pagina di manuale è stata creata da Elisabetta Galli <lab@kkk.it> e Marco Curreli <marcocurreli@tiscali.it>

Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 (https://www.gnu.org/licenses/gpl-3.0.html) o successiva per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.

Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-ildp@lists.pluto.it.