Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Конец света в 2038 или 32-х битная переменная UNIX-времени
#1
Проблема 2038 года


Проблема 2038 года в вычислительной технике — ожидаемые сбои в программном обеспечении 19 января 2038 года. Данная проблема затрагивает программы и системы, в которых используется представление времени по стандарту POSIX (UNIX-время), которое представляет собой количество секунд, прошедшее с 1 января 1970 года. Такое представление времени — это стандарт для Unix-подобных операционных систем (из-за повсеместного использования языка Си).

В старых 32-битных системах (до середины 90-х) используется тип данных time_t для хранения секунд в виде signed int (32-битного целого со знаком). Самая поздняя дата, которая может быть представлена таким форматом в стандарте POSIX — это 03:14:07, вторник, 19 января 2038 года по Всемирному времени (UTC).


Вот он - конец света ))

Честно с ctrl+c ctrl+v -- Источник


А вообще к чему это я...
Вы хоть на секунду задумывались над тем, сколько оборудования оборонки, авиакомпаний, банковских систем, биржи и прочего разного работает под управлением Unixlike систем? Наш родной интернет на ней живет!
И в 2038 году, это все получит panic kernel и упадет.
Это же крах человечества...
Sad

[Изображение: Year_2038_problem.gif]
Ответ
#2
У меня периодически случается конец света в моих виндовых программах которые используют GetTickCount для отсчета задержек.
При аптайме винды более 4294967295/(1000*60*60) = 1193 часов = 49 дней
32 битная без знаковая переменная переполняется и происходит коллапс Smile
Ответ
#3
Смотрю на свой код и печалюсь, что в 2038 году он не будет работатьSad

Код:
static inline time_t getCurrentSeconds() {
    return time(NULL);
}

flopix, так вот из-за кого мне приходится сбивать аптайм машины на которой я работаю! :mad:
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#4
Какие то изменения будут,но не конец света)
Ответ
#5
flopix Написал:У меня периодически случается конец света в моих виндовых программах которые используют GetTickCount для отсчета задержек.
При аптайме винды более 4294967295/(1000*60*60) = 1193 часов = 49 дней
32 битная без знаковая переменная переполняется и происходит коллапс Smile

Используйте натив

Код:
[DllImport("kernel32.dll", SetLastError=true)]
static extern bool QueryPerformanceCounter(out long lpPerformanceCount);

public static long GetTimestamp() {
     long counter = 0;
     QueryPerformanceCounter(out timestamp);
     return counter;
}
Ответ
#6
ента исчо дажит нада
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Янукович В.Ф - Конец. singer 108 18,321 02-23-2014, 03:59 PM
Последний пост: Ozzy
  В конец надоел спам по СМС? ReaM 14 2,826 12-21-2013, 06:25 PM
Последний пост: TAG
  Расшифровать UNIX пароль TAG 5 2,272 09-02-2013, 03:25 PM
Последний пост: Twinker
  А Когда? Или конец света: Эпизод третий Hard 94 13,145 12-22-2012, 10:06 AM
Последний пост: Ashe
  Dos атака с unix Dementor 4 1,923 12-21-2012, 09:02 PM
Последний пост: Happybot
  Конец света - вот ОН! Double 27 3,921 12-21-2012, 01:37 PM
Последний пост: AceShadow
  Конец света отменяется - найден новый календарь майа AceShadow 12 3,285 05-14-2012, 01:20 PM
Последний пост: Volond1
  Конец ZG? :( Azagthtot 166 28,972 04-28-2012, 04:57 AM
Последний пост: Zubastic
  Предотвращаем КОНЕЦ СВЕТА 2012 Gambit_J 20 4,622 11-07-2011, 11:15 PM
Последний пост: SoftTap
  21 мая, конец света близок! SoftTap 57 11,720 10-22-2011, 06:42 PM
Последний пост: xamelion

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)