Care este problema 2038?
Problema anul 2000 este de înțeles de către cei mai mulți oameni în aceste zile, din cauza cantității mari de atenția mass-media le-a primit .
Cele mai multe programe scrise în limbajul de programare C sunt relativ imune la problema Y2K, dar suferă în schimb din anul 2038 problema. Această problemă apare deoarece majoritatea programelor C utilizați o bibliotecă de rutine numite biblioteca ora standard. Această bibliotecă stabilește un format standard de 4-byte pentru depozitarea valorilor de timp, și, de asemenea, oferă o serie de funcții pentru conversie, afișarea și calcularea valorilor de timp.
standard format de 4-byte presupune că începutul timpului este un-01-1970, la 12:00:00 Această valoare este 0. Orice valoare timp /dată este exprimată ca numărul de secunde după care valoarea zero. Astfel încât valoarea 919642718 este 919,642,718 de secunde trecute 12:00:00 la 1 ianuarie 1970, care este Duminica, douăzeci și un/2/1999, la 16:18:38 moment Pacific (SUA). Acesta este un format convenabil, deoarece dacă scădeți oricare două valori, ceea ce veți obține este un număr de secunde, care este diferența de timp dintre ele. Apoi, puteți utiliza alte funcții în bibliotecă pentru a determina cât de multe minute /ore /zile /luni /ani au trecut între cele două ori.
Dacă ați citit Cum Biți și Bytes de lucru, știți că un semnat întreg 4-byte are o valoare maximă de 2147483647, și acest lucru este în cazul în care problema Anul 2038 vine de la. Valoarea maximă a timpului înainte de a role de peste la un negativ (și invalid) valoare nu este 2147483647, care se traduce in 19 ianuarie 2038. La aceasta data, orice programe C care utilizează biblioteca ora de iarnă va începe să aibă probleme cu calculele data.
Această problemă este oarecum mai ușor pentru a rezolva decât problema Y2K pe mainframe-uri, din fericire. Programe bine-scrise poate fi pur și simplu recompilat cu o nouă versiune a bibliotecii care utilizează, de exemplu, valorile de 8-byte pentru formatul de stocare. Acest lucru este posibil deoarece biblioteca încapsulează activitatea tot timpul cu propriile sale tipuri de timp și funcții (spre deosebire de cele mai multe programe mainframe, care nu au standardiza formatele lor data sau calcule). Deci problema Anul 2038 nu ar trebui să fie aproape la fel de greu pentru a rezolva problema Y2K ca a fost
Iată câteva link-uri interesante:.