Tempo (Unix)

sistemi di misura del tempo nei sistemi Unix e Unix-like

Nei sistemi operativi Unix e Unix-like il tempo viene rappresentato come offset in secondi rispetto alla mezzanotte (UTC) del 1º gennaio 1970 (detta epoca).

Ad esempio, il 9 Settembre 2001 alle ore 03:46:40 CET il valore di tale offset era pari ad un miliardo, indicando appunto che in quell'istante erano trascorsi un miliardo di secondi rispetto all'epoca.

Per rappresentare tale offset viene usato il tipo time_t.

Questo tipo di rappresentazione, oltre che ad essere compatta, è indipendente dai fusi orari, ed è quindi direttamente confrontabile anche tra calcolatori situati a grandi distanze geografiche tra loro, ed evita di dover effettuare aggiustamenti nel caso ad esempio di dati trasmessi da un fuso orario all'altro.

Lo svantaggio è che per averne una rappresentazione sotto forma di data e ora locali è necessario effettuare una conversione; il sistema operativo offre allo scopo delle funzioni che consentono di effettuarle in entrambe le direzioni.

Anno 2038 e bit overflow

Nei calcolatori e nei sistemi operativi a 32 bit il tipo time_t è comunemente un tipo di dato numerico intero a 32 bit con segno. Il 19 gennaio 2038 alle ore 03:14:08 (GMT) il numero di secondi trascorsi dall'epoca raggiungerà il valore di 231, che è al di fuori dei valori rappresentabili da tale tipo di dato.

Tali calcolatori e sistemi operativi potranno quindi riscontrare problemi e malfunzionamenti, non essendo più in grado di memorizzare correttamente il valore che indica la data corrente.

Voci correlate

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica