Il problema
|
Il problemaIl bug dell'anno 2038 (YEAR-2038) è simile al bug dell'anno 2000 (Y2K) in quanto coinvolge un problema di spostamento temporale non gestito dai programmatori. Il bug colpisce tutti quei sistemi operativi e programmi scritti in C che utilizzano il tipo dati time_t per memorizzare le date.
Generalmente infatti questo tipo dati utilizza uno spazio di 30 bit per memorizzare data e ora, rappresentate come differenza dalla data iniziale del 1/1/1970. In questo modo la massima data rappresentabile in un numero di 30 bit è martedì 19 gennaio 2038 alle ore 03:14:07. Quindi la data esatta in cui si verificherà il BUG è venerdì 19 gennaio 2038 alle ore 03:14:07. Probabilmente nel 2038 non si verificheranno problemi dal momento che il BUG sarà già stato ampiamente risolto. Ciò però non deve trarre in inganno in quanto il BUG coinvolge putroppo già da ora molte applicazioni (scritte per sistemi con architettura a 32 bit) che utilizzano date che si spingono in avanti nel tempo di 30 anni come ad esempio le scadenze degli strumenti finanziari. Segue un banale esempio di codice standard "C" che dimostra il BUG :
Risultato dell'esecuzione del programma:
Sistemi operativiWindows
TuttiWindows CE Unix
LinuxSolaris AIX Mac OsX Applicazioni |