BUG 2038

Feb. 20th, 2004 07:03 am
[personal profile] robinbobin
Вчера разговаривал с чайником. Рассказал ему почему был баг2000.
потом он спросил, когда следующий?
сказал что в 2038 году.

вот например ЖеЖе имеет такой баг....

запись от февраль 2037 года вводится, 2038 уже нет.

Date: 2004-02-20 12:14 am (UTC)
From: [identity profile] yms.livejournal.com
Маяковский разговаривал с солнцем, а Робин - с чайником...
From: [identity profile] gluk-77.livejournal.com
блинннн, ты че сидел и перебирал год за годом?!
From: [identity profile] robinbobin.livejournal.com
kolichestvo secund, proshedshix posle vecherinki v chest' pervoj versii unixa ;)
From: [identity profile] robinbobin.livejournal.com
ser'ezno....

v unix'e systemnoe vremya xranitsya v signed 32-x bitnom chisle.
t.e. odin bit ispolzuetsya kak znak, eto polozhitelnoe chislo ili otrizatelnoe, v resultate, dlya vremeni ostaetsya na 1 bit menshe, t.e. 31 bit.

samo system time, interpritiruetsya kak chislo secund ot 1 Yanvarya, 1970. (bajka: sozdateli unixa ustroili vecherinku po povodu zarabotavshej versii ;)

vot resultat raboty php scripta
< ?php
$i = 0;
print_r (getdate ($i));
? >
Array
(
[seconds] => 0
[minutes] => 0
[hours] => 2
[mday] => 1
[mon] => 1
[year] => 1970
[weekday] => Thursday
[month] => January
)

t.e. kol-chestvo secund kotorye mogut byt predstavleny v 31butnom chisle 2147483648
eto 68+ let. 2147483648 / (60*60*24*365)

t.e. poslednya resultativnaya data
< ?php
$i = pow (2,31) -1;
print_r (getdate( $i));
? >

Array
(
[seconds] => 7
[minutes] => 14
[hours] => 5
[mday] => 19
[year] => 2038
[weekday] => Tuesday
[month] => January
)

t.e. 19-Yanvarya-2038

esli by, avtory unixa dobavili v opredelenii tipa time ne signed, a unsigned, (t.e. ne uchitivali znak), to problema otlozhilas' by na 136 let.
vse ravno, prostitelno, nikto ne dumal chto eta OS i 68 let prozhivet.
a ved' prozhivet...


From: [identity profile] beps.livejournal.com
Кроме того , из Юникса тот же подход перекочевал еще в некоторые ОС.
From: [identity profile] beps.livejournal.com
Ответил, а потом сам обратил внимание :
After 23:59:59, December 31, 3000, UTC (using _time64 and __time64_t).

Y3K bug , однако :)
From: [identity profile] robinbobin.livejournal.com
a interesno s kakix soobrazhenij oni postavili ogranichenie na etu datu?

ili oni ne nadeutsya, sho windows do 3001 goda prozhivet :)

Profile

robinbobin

December 2016

S M T W T F S
     1 2 3
45 6 7 8 910
1112 13 14 15 16 17
18192021 22 23 24
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 24th, 2025 05:54 am
Powered by Dreamwidth Studios