Hi, all! On Fri, May 26, 2006 at 08:58:01PM +1000, Peter Jeremy wrote: > On Fri, 2006-May-26 11:34:43 +0200, Patrick M. Hausen wrote: > >> > -rw-r--r-- 1 jmz jmz 4312 Apr 16 1947 supclkrd.prg > > >Since there cannot be a date before January 1st 1970, 0:00 on > >any Unix system, i guess there's something seriously broken here. > > Why do you say that? time_t is signed so it can represent a date > prior to 1970. In theory, a file prepared on an earlier computer > could have been transferred onto a Unix system whilst retaining > its original modification time.
If I'm not mistaken, the signedness of time_t is merely historical. time_t predates explicitely unsigned integer data types in C. The historical definition seems to have been "long". Dates before the Epoch are undefined. I mean, which part of "seconds since the Epoch" implies time values _before_ the Epoch? You are not supposed to do calculations subtractions with time_t but use difftime(), for example. POSIX.1-1990. Section 2.2.2.77: seconds since the Epoch "If the year < 1970 or the value [of seconds since the Epoch] is negative, the relationship is undefined. If the year >= 1970 and the value is non-negative, the value is related to a Coordinated Universal Time name ..." Regards, Patrick -- punkt.de GmbH Internet - Dienstleistungen - Beratung Vorholzstr. 25 Tel. 0721 9109 -0 Fax: -100 76137 Karlsruhe http://punkt.de _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "[EMAIL PROTECTED]"
