[time-nuts] Leap Quirks

M. Warner Losh imp at bsdimp.com
Sun Jan 4 05:56:53 UTC 2009


In message: <4960027E.1000103 at erols.com>
            Chuck Harris <cfharris at erols.com> writes:
: Poul-Henning Kamp wrote:
: > In message <495FD637.5030105 at erols.com>, Chuck Harris writes:
: > 
: >> Ok, that is news to me.  Are you saying that (pulling a number out of
: >> the air) time_t = 21120123 could be followed by 21120123 on a year where
: >> we added a leap second?
: > 
: > Apart from the number, that is exactly what happens: The last
: > second of the (UTC) day is recycled twice.
: 
: As far as I remember, and as far as I can tell, what you are saying
: violates both the unix and POSIX definition of time_t.
: 
: So to check, I pulled out both of my K&R editions of "The C programming Language"
: and I did a quick google on time_t, and all of the sources I have found
: concur that time_t is the number of seconds since 1/1/1970 UTC without
: regard to leap seconds.

That's exactly what Poul is saying.  Without regard to leap seconds
means that they don't exist and do not count in POSIX.  A midnight
time_t % 86400 must == 0, or it isn't POSIX.

: When did this change?

It never was clearly defined before POSIX, and POSIX made at least 4
muddled attempts to define it.

Warner




More information about the time-nuts mailing list