table of contents
ADJTIME(3) | Linux Programmer's Manual | ADJTIME(3) |
NOME¶
adjtime - corregge l'orario per sincronizzare l'orologio di sistema
SINTASSI¶
int adjtime(const struct timeval *delta, struct timeval *olddelta);
Test delle funzioni e requisiti delle macro 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¶
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.
VEDERE ANCHE¶
COLOPHON¶
Questa pagina fa parte del rilascio 3.01 del progetto man-pages di Linux. Si può trovare una descrizione del progetto, e informazioni su come riportare bachi, presso http://www.kernel.org/doc/man-pages/. Per la traduzione in italiano si può fare riferimento a http://www.pluto.it/ildp/collaborare/
22 giugno 2008 | Linux |