Data: 2000-01-08 22:24:12
Temat: Re: Najwieksze swiatowe oszustwo informacyjne - pluskwa milenijna? Politechnika Wroclawska
Od: q...@k...org.pl (Marcin 'Qrczak' Kowalczyk)
Pokaż wszystkie nagłówki
Followup-To: pl.comp.programming
Sat, 8 Jan 2000 22:44:23 +0100, Milo <m...@p...onet.pl> pisze:
> > Nie chodzi o to. Chodzi o to, że data jest przechowywana w postaci liczby
> > sekund od tzw. "Epoch", czyli 1.I.1970. W 2037/8 int się przekręci.
> Jakby tak bylo, to by sie przekracal co 9.1 godziny.....:D
> Chyba chodzi o longa.
Pod Linuxem int ma 32 bity. Long na 32bitowej architekturze
też. Dopiero na 64bitowej long ma 64 bity. Long long ma 64 bity
i na 32bitowej architekturze.
Wielkości typów C są w pewnym zakresie sprawą kompilatora. Powyższe
ustalenia nie wynikają z jakichś fundamentalnych własności sprzętu,
tylko taka jest konwencja.
time_t jest akurat stypedefowany do longa. Na jedno wychodzi.
Zmiana time_t na long long spowodowałaby konieczność przekompilowania
niemal wszystkich programów (albo wprowadzenia nowych wersji
odpowiednich funkcji), dlatego to nie zostało zrobione. Uważa się, że
do 2038 roku 32bitowe architektury nie będą już używana. Tymczasem
można myśleć o zamianie time_t na unsigned long, co da jeszcze
kilkadziesiąt lat i większość programów powinna to przełknąć.
--
__("< Marcin Kowalczyk * q...@k...org.pl http://qrczak.ids.net.pl/
\__/ GCS/M d- s+:-- a22 C+++$ UL++>++++$ P+++ L++>++++$ E-
^^ W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP+ t
QRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
|