Hlavní navigace

Vlákno názorů k článku Billennium --- unixový Y2k od Tomáš Kapler - samostatným přechodem na 64 bitovou architekturu se nic...

  • Článek je starý, nové názory již nelze přidávat.
  • 6. 9. 2001 14:57

    Tomáš Kapler (neregistrovaný)
    samostatným přechodem na 64 bitovou architekturu se nic nevyřeší. To je jako byste tvrdili, že Y2K problém nemohl nastat, protože nové systémy mají 32 bitovou architekturu.
    Jenže problém je ve špatně napsaných programech, kde má nějaká proměná určitou délku a ta délka zůstane na libovolně bitové architektuře. Problém je také v programech, které data zobrazují a kde ta data potom někdo bere jak jsou zobrazená (co kdyby vám přišla faktura s datem splatnosti 1.1.19100?).
    A pak je tu spousta hardware, který používá nějaký systém (třeba linux) ale už se na to nikdo nekoukne, nikdo je nebude měnit, prostě to někde běží, padá na to prach, funguje to a tak se o to nikdo nezajímá. Ale pak přijde nějaké datum, které způsobí že to fungovat přestane. A máme tu zas y2k jako vyšité.
    Takže obavy budou na místě v každém případě. A to i když v té době už bude třeba jenom windows 2037. Prostě někde ty staré systémy určitě budou.
  • 6. 9. 2001 15:46

    kokot (neregistrovaný)
    Fraktura s dobou splatnosti 1.1.19100? jdu si koupit na frakturu nejakou mensi rafinerii.....
    tak ted teprve jsem se dozvedel, ze time_t je singned int..:-) nikdy jsem to nepotreval vedet, na rozume datum to stejne neni potreba....
    no reseni by samo bylo prejit na pocitani casu ve tvaru Julianskeho data, ktere je jak vsichni vime, rovnomerne plynouci casova skala menici se o cele cislo jednou denne), pokud by byla reprezentovana jako real*8 pak by s casovym rozlisenim sekund vydrzela od pocatku sveta pred 4 miliardami let do soumraku veku).
    presto ale bude v pocitacovem svete prijato jine reseni :-) a to skutecne s tim 64bitovym integerem, je treba si uvedomit, ze definice typedef time_t int znamena, ze je to int dostupny na pruislusne architekture, tedy pro 16bit 2 byte, pro 32bit 4 byte a pro 64bit pak 8byte, ansi nespecifijuke delku int!
    to je obecne dost zavzny problem Ccka, ktere dooprvady neni moc prenositlene, resi se to ruzne napr v gtk je definovan gint32 a pod,
    v tomhle ohledu je mnohem dal fortran, ktery je doopravdy prenositelny vsude, protoze krome zadavani presnosti spedifikovanim byte umoznuje primo zadat potrebny rozsah, presnost u realnych cisel atd.
  • 6. 9. 2001 23:01

    Michal Illich (neregistrovaný)
    (1) Julianske datum je super.

    (2) time_t, jak tady nekdo vyse citoval, je v soucasnosti "long int", tedy vzdy 32bitove.
    Kdyby bylo na nekterych architekturach 16bitove, tak by to nevydrzelo ani den :)
  • 7. 9. 2001 11:16

    kokot (neregistrovaný)
    v BC melo int = 2byte integer, v gcc na i386 ma int = 4byte integer, v cc na SGI ma int = 8byte integer, 16 bit integer je pod gcc short
  • 7. 9. 2001 13:22

    Michal Illich (neregistrovaný)
    Vzdyt nikdo nerikal opak. Samotny "int" skutecne nema definovanou velikost. (obvykle je ale 32bit, drive 16bit, 64bitovy defaultni "int" jsem jeste nevidel).

    Spor byl o time_t, a to je nyni prakticky vsude definovane jako "long int":

    typedef long int __time_t;
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).