V čem je problém 2038?
Problém roku 2000 se rozumí většina lidí v těchto dnech, a to z důvodu velkého množství pozornosti médií to přjímalo .
Většina programy napsané v programovacím jazyce C jsou relativně imunní vůči problému Y2K, ale místo toho trpí od roku 2038 problému. Tento problém vzniká proto, že většina programů C použití knihovny rutin s názvem standardní doba knihovny. Tato knihovna zavádí standardní formát 4-byte pro skladování časových hodnot, a také poskytuje řadu funkcí pro konverzi, zobrazení a výpočet časové hodnoty.
Standardní formát 4-byte předpokládá, že počátek času je 1. ledna 1970 v 12:00:00 hod Tato hodnota je 0. Jakákoli času /data hodnota je vyjádřena jako počet sekund, po nulovou hodnotu. Takže hodnota je 919642718 919,642,718 sekund past 12:00:00 hod 1. ledna 1970, což je neděle 21 únor 1999, 16:18:38 v tichomořského času (USA). To je vhodný formát, protože pokud odečteme dvě libovolné hodnoty, to, co dostanete, je počet sekund, že je časový rozdíl mezi nimi. Pak můžete používat další funkce v knihovně zjistit, kolik minut /hodin /dní /měsíců /let uplynulo mezi těmito dvěma časy.
Pokud jste četli Jak bitů a bytů Práce, víte, že podepsaný 4-byte integer má maximální hodnotu 2,147,483,647, a to je místo, kde je problém Rok 2.038 pochází. Maximální hodnota času, než to se převalí na zápornou (a) neplatná hodnota je 2147483647, který se promítá do 19. ledna 2038. V tento den, všechny programy, které používají C je standardní doba knihovny začne mít problémy s datem výpočty.
Tento problém je poněkud jednodušší, opravit, než na problém Y2K na sálových počítačů, naštěstí. Dobře napsané programy mohou být jednoduše recompiled s novou verzí knihovny, která používá, například, hodnoty 8 bajtů pro formát ukládání. To je možné, protože knihovna zapouzdřuje po celou dobu aktivity s vlastními typů a funkce (na rozdíl od většiny sálového počítače programy, které nebyly standardizovat formáty data nebo výpočty) času. Takže problém Rok 2.038 by nemělo být zdaleka tak těžké, jak opravit problém Y2K byl
Zde jsou některé zajímavé odkazy:.