jammy (3) adjtime.3.gz

Provided by: manpages-it-dev_4.13-4_all bug

NOME

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

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

       ┌────────────┬───────────────┬─────────┐
       │InterfacciaAttributoValore  │
       ├────────────┼───────────────┼─────────┤
       │adjtime()   │ Thread safety │ MT-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.

VEDERE ANCHE

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

COLOPHON

       Questa pagina fa parte del rilascio 5.10 del progetto Linux man-pages. Una descrizione del  progetto,  le
       istruzioni  per  la  segnalazione  degli  errori,  e  l'ultima  versione  di  questa pagina si trovano su
       https://www.kernel.org/doc/man-pages/.

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 ⟨⟩.