Wertebereich von time t / time t verarbeitenden Funktionen
Von: Dominik Schäfer (usenet0908.30.schaedpq@spamgourmet.com) [Profil]
Datum: 12.02.2009 09:38
Message-ID: <gn0nau$bla$1@news.karotte.org>
Newsgroup: de.comp.os.unix.programming
Datum: 12.02.2009 09:38
Message-ID: <gn0nau$bla$1@news.karotte.org>
Newsgroup: de.comp.os.unix.programming
Moin allerseits, time_t hat ja je nach Plattform unterschiedliche Wertebereiche. Jetzt hab ich das Problem, dass time_t auf einer LP64-Plattform ein Integer mit einem Max von 9223372036854775807LL ist, strftime() dort allerdings ab Eingaben von ca. 72057594037927936 (bzw. irgendwo zwischen 2^55 und 2^56) segfaultet. Das stoert mich jetzt eigentlich an sich nicht sonderlich, weil so grosse Zahlen erstmal wenig praktische Bedeutung haben. Allerdings muss ich die Benutzereingabe damit auf etwas < max(time_t) beschraenken. (time_t muss ja kein ein Integer sein, allerdings gehen genug Stellen im Programm davon aus, dass es einer ist, insofern beschraenk ich mich momentan auf entsprechende Systeme.) Welche Vorgehensweise haltet ihr plattformuebergreifend fuer sinnvoll? Auf der sicheren Seite waere man mit <2147483647, aber da wiederum haben einige unserer Benutzer Interesse nach groesseren Werten (weil sie mit simulierten Daten rechnen). Gibt es einen Wert > 2147483647, dessen korrekte Verarbeitung durch die time_t-verarbeitenden Funktionen auf POSIX.1-Plattformen ueblicherweise garantiert wird? Meine Suche diesbzgl. war bisher relativ erfolglos. Viele Gruesse, Dominik[ Auf dieses Posting antworten ]
