2038-vandinn

Úr Wikipediu, frjálsa alfræðiritinu
Stökkva á: flakk, leita
Dæmi um hvernig dagsetningin mun líta út 19. janúar 2038.

2038-vandinn á við um tæknilegar annmarkanir í forritum sem notast við tímaframsetningu POSIX. Vandamálið gæti orðið til þess að forrit festist í lykkjum (þ.e. forrit endurtekur sömu aðgerðir aftur og aftur), þau gefi rangar niðurstöður o.s.frv.

Tímaframsetningin er í raun talning í sekúndum frá 1. janúar 1970, takmörkunin er sú að form tímaframsetningarinnar einskorðast við formerkta 32 bita tölu (mögulegur fjöldi jákvæðra sekúnda er því 231). Þetta þýðir að sekúndurnar eru taldar frá 0 upp í 2.147.483.647 (231) eða til klukkan 03:14:07 UTC þriðjudaginn 19. janúar 2038 ef talið er frá 1. janúar 1970. Á áðurnefndum degi byrjar forritið svo að telja upp á við frá −2.147.483.648 (-231) sekúndum. Þetta veldur að sjálfsögðu ruglingi í mörgum forritum þar sem tíminn verður neikvæður og mun valda því að forritið heldur að árið sé 1901 (þ.e.a.s. −2.147.483.648 sekúndum frá árinu 1. janúar 1970).

Lausnin felst í að breyta tímaframsetningunni úr 32 bitum yfir í 64 bita. Samsvarandi takmarkanir eru til staðar á þeirri framsetningu en þeirra verður ekki vart fyrr en eftir 290 milljarða ára. Ekki er litið á það sem aðkallandi vandamál.