SINTASSI
#include <sys/time.h>
int adjtime(const struct timeval *delta, struct timeval *olddelta);
Macro per test di funzionalità richieste per glibc (vedere feature_test_macros(7)):
adjtime(): _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 accellerato 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
Multithreading (vedi pthreads(7))
La funzione adjtime() è thread-safe.CONFORME A
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.COLOPHON
Questa pagina fa parte del rilascio 3.73 del progetto Linux man-pages. Una descrizione del progetto, le istruzioni per la segnalazione degli errori, e l'ultima versione di questa pagina si trova su http://www.kernel.org/doc/man-pages/.
La versione italiana fa parte del pacchetto
man-pages-it
v. 3.73, a cura di:
ILDP "Italian Linux Documentation Project"
http://www.pluto.it/ildp
Per la traduzione in italiano si può fare riferimento a
http://www.pluto.it/ildp/collaborare/
Segnalare eventuali errori di traduzione a
[email protected]