El Efecto 2038, afectará muchos programas en el año 2038.
Aún falta tiempo para que ocurra (29 años), sin embargo el problema del año 2038 podría causar que una parte del equipamiento lógico falle en ese año. El problema afecta a los programas que usen la representación del tiempo basada en el sistema POSIX, que se basa en contar el número de segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 (ignorando los segundos intercalares). UnixMexico ha publicado un interesante ejemplo (que en Alcance Libre hemos corregido y adecuado para verse en HTML) del problema que ocasiona el Efecto 2038, y solo requiere utilizar un compilador con soporte
ANSI C (Ej: gcc).
bug_2038.c
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <time.h>
int main (int argc, char **argv)
{
time_t t;
t = (time_t) 1000000000;
printf ("%d, %s", (int) t, asctime (gmtime (&t)));
t = (time_t) (0x7FFFFFFF);
printf ("%d, %s", (int) t, asctime (gmtime (&t)));
t++;
printf ("%d, %s", (int) t, asctime (gmtime (&t)));
return 0;
}
La salida de lo anterior, debe ser similar al a siguiente:
1000000000, Sun Sep 9 01:46:40 2001
2147483647, Tue Jan 19 03:14:07 2038
-2147483648, Fri Dec 13 20:45:52 1901
Más información en
Fuente: UnixMexico.
Atención: Salvo que se indique lo contrario, la licencia del texto de este documento es Creative Commons Reconocimiento 2.5, mediante la cual usted tiene permitido copiar, modificar, comunicar y distribuir el contenido de este texto, de manera total o parcial, y publicarlo o difundirlo en cualquier otro sitio de Internet o medio de comunicaciòn, siempre y cuando incluya o cite (1)el nombre de este sitio de Internet, (2)enlace permanente de este documento, (3)nombre del autor y (4)la misma licencia de distribución.
Opciones: Imprimir | Recomendar | Enlace permanente