Problema[modifica | modifica wikitesto]
Il problema riguarda programmi che usano la rappresentazione POSIX per calcolare il tempo: questa calcola la data del sistema come il numero di secondi trascorsi dallo Unix Epoch Time 1 gennaio 1970 (ignorando i secondi intercalari). Questo tipo di sistema è lo standard per i sistemi Unix, e colpisce anche software per altri sistemi operativi che siano stati sviluppati in C. Sulla maggior parte dei sistemi a 32 bit, il valore del dato time.h
usato per questo calcolo è un numero intero a 32 bit di tipo signed.
Usando questo sistema, l'istante più lontano rappresentabile scoccherà alle ore 03:14:07 del 19 gennaio 2038 (UTC). Dopo questo momento, il contatore supererebbe il valore massimo, e verrebbe considerato come un numero negativo. I computer leggeranno la data non come 2038, ma come 1901 (precisamente, le 20:45:52 UTC di venerdì 13 dicembre 1901), causando errori di calcolo.[1] "Year 2038" è chiamato anche "Y2038", "Y2K38" o "Y2.038K".
Nessun commento:
Posta un commento