Какъв е проблемът 2038?
<Р> Проблемът Година 2000 се разбира от повечето хора в наши дни, поради големия размер на вниманието на медиите да го получи .
<р> Повечето програми, написани на езика за програмиране C са относително имунизирани срещу проблема Y2K, но страдат вместо от 2038 година проблема. Този проблем възниква, тъй като повечето програми C използват библиотека от съчетания нарича стандартно време библиотеката. Тази библиотека установява стандартен 4-байтов формат за съхранение на ценности, време, и също така предоставя редица функции за преобразуване, изобразяване на данните и изчисляване на стойности време.
<Р> Стандартната 4-байтов формат предполага, че началото на времето е 01 януари 1970, 12:00:00 ч най Тази стойност е 0. Всяко време /дата стойност се изразява в броя на секунди след нулева стойност. Така стойността 919642718 е 919,642,718 секунди последните 12:00:00 ч на 1 януари, 1970 г., което е неделя, 21 февруари 1999, 16:18:38 в Тихоокеанско време (US). Това е удобен формат, защото ако се изважда всеки две стойности, това, което получавате, е определен брой секунди, което е часовата разлика между тях. След това можете да използвате други функции в библиотеката да се определи колко минути /часове /дни /месеци /години са минали между двете времена.
<Р> Ако сте прочели Как битове и байтове Work, вие знаете, че подписана 4 байта цяло число има максимална стойност от 2147483647, и това е мястото, където проблемът Година 2038 идва. Максималната стойност на време, преди да се преобърне при отрицателна (и невалидна) стойност е 2147483647, което се изразява в 19 януари 2038. На тази дата, всички програми, C, които използват стандартно време библиотеката ще започне да имат проблеми с дата изчисления.
<р> Този проблем е малко по-лесно, отколкото да се определи проблема Y2K на компютърни системи, за щастие. Добре написани програми могат просто да бъдат прекомпилирани с нова версия на библиотеката, която използва, например, 8-байтови стойности за формат за съхранение. Това е възможно, защото библиотеката капсулира целия път дейност със свои собствени видове срокове и функции (за разлика от повечето програми мейнфрейм, които не стандартизират техните формати за дата или изчисления). Така че проблемът Година 2038 не трябва да бъде толкова трудно да се определи като проблем Y2K беше
Ето няколко интересни връзки:.
<Ли> Как проблемът Година 2000 Работи
<Ли> Как C Програмиране Wor
Page [1] [2]