Новости, советы, вдохновение которым вы можете доверять

В чем проблема 2038 года?

Проблема 2000 года понятна большинству людей в наши дни из-за большого внимания к ней средств массовой информации.

Большинство программ, написанных на языке программирования C, относительно невосприимчивы к проблеме Y2K, но вместо этого страдают от проблемы 2038 года. Эта проблема возникает из - за того , что большинство программ на C используют библиотеку подпрограмм , называемую стандартной библиотекой времени. Эта библиотека устанавливает стандартный 4-байтовый формат для хранения значений времени, а также предоставляет ряд функций для преобразования, отображения и вычисления значений времени. https://limonsu.ru/

Стандартный 4-байтовый формат предполагает, что началом <a>времени</a> является 1 января 1970 года, в 12:00:00 утра. Это значение равно 0. Любое значение времени / даты выражается как количество секунд, следующих за этим нулевым значением. Итак, значение 919642718 равно 919,642,718 секундам после 12:00:00 утра 1 января 1970 года, то есть в воскресенье, 21 февраля 1999 года, в 16:18:38 по тихоокеанскому времени (США). Это удобный формат, потому что если вычесть любые два значения, то получится количество секунд, равное разнице во времени между ними. Затем вы можете использовать другие функции в библиотеке, чтобы определить, сколько минут / часов / дней / месяцев / лет прошло между этими двумя временами.

Если вы читали, как работают биты и байты, вы знаете, что 4-байтовое целое число со знаком имеет максимальное значение 2,147,483,647, и именно отсюда возникает проблема 2038 года. Максимальное значение времени до перехода к отрицательному (и недопустимому) значению равно 2,147,483,647, что соответствует 19 января 2038 года. В этот день у любых программ на C, использующих библиотеку стандартного времени, начнутся проблемы с вычислением даты.

К счастью, эту проблему решить несколько проще, чем проблему Y2K на мэйнфреймах. Хорошо написанные программы можно просто перекомпилировать с новой версией библиотеки, которая использует, например, 8-байтовые значения для формата хранения. Это возможно, потому что библиотека инкапсулирует всю временную активность со своими собственными типами времени и функциями (в отличие от большинства программ для мэйнфреймов, которые не стандартизировали свои форматы дат или вычисления). Таким образом, проблему 2038 года исправить не так сложно, как проблему Y2K.

Что произойдет в 2038 году?

В 2038 году мир будет совсем не таким, как сегодня. Глобальное потепление вызовет широкомасштабные разрушения, сделав многие районы планеты непригодными для жизни. Экономика может рухнуть, а общество погрузиться в хаос.

Категория: Интернет | Добавил: Dexs (10.01.2024)
Просмотров: 43 | Рейтинг: 0.0/0