ctime Jahr 2038
-
Es gibt ca. 2 Arten mit c++ Zeit/Datums berechnungen zu machen.
ctime und boost::dateNun, soviel ich weis, ist ctime auf dem unixtimestamp bassierend.
Im Jahre 2038 werden alle programme einen ueberlauf haben,
welche den timestamp in eine signed 32bit int gespeichert haben.Ich will ein Programm schreiben, welche datum(s) berechnet,
und zwar bis 3000 n.Ch.
Wie kann ich sicherstellen, das mein compiler (gcc) den unsigned int verwendet?gg
-
Wieso googelst du nicht nach "ctime 2038"?
Der erste Eintrag ist schon sehr hilfreich.
In Zukunft google verwenden.
-
Edit: Bzw. findet sich sogar in der msdn etwas darüber:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_ctime.asp
Sieh dir mal den Link bei: [...] for a wider range us COleDateTime [...] an.
-
Ich proge ned auf Windows bzw. mit windows API.
Aber soweit ich herrausgefunden habe, verwenden neue compiler
eine 64 bit int.muss mal nachschauen was der gcc 3.3.5 verwendet.
EDIT
Hab gerade gesehen das dies im Kernel definiert ist.
ist also nix mit compiler.
Bei mir is es auf #define _BSD_TIME_T_ int also nix mit long long
-
Dann wäre es interessant zu wissen welches Betriebsystem du verwendest...
-
Hi, habe diese Page gefunden:
http://www.deepsky.com/~merovech/2038.html#What_can_I_do_about_itVl. hilft dir der Punkt What can I do about it? weiter. Untern anderem ist ein Link auf eine open source library die mit diesem Problem umgehen kann.
Grüße