[time-nuts] Leap seconds and POSIX
joegwinn at comcast.net
Thu Jan 1 16:45:16 UTC 2009
Having worked in the POSIX committee for many years, I can shed some
light on how POSIX handles leap seconds:
In short, POSIX adamantly ignores leap seconds. All days in POSIX
have the same length, 86,400 seconds.
This omission is not by accident, instead having been violently
debated at length, and voted upon.
The rationale is that one cannot assume that all POSIX systems have
access to leap second information, or even the correct time, and yet
must work in a reasonable manner. In particular, file modification
timestamps must allow one to determine causal order (to within one
second in the old days) by comparison of timestamps. (Yes, people do
realize that timestamps are not the perfect way to establish causal
order, but are nonetheless widely used in non-critical applications.
Critical applications instead use some kind of atomic sequence-number
So, at least in theory, POSIX time is a form of TAI, having a
constant offset from TAI.
In practice, in platforms that have access to GPS, NTP is used to
servo the local computer clock into alignment with UTC (or GPS System
Time (UTC without the accumulated leaps) in systems that abhor time
steps), and there is a transient error just after a leap second while
More information about the time-nuts