Markus Kuhn scripsit: > > > They have always counted the non-leap seconds since 1970-01-01. > > > The Posix interpretation is only a few years old, and a break with Unix > > history. Before that, time_t ticked SI seconds since the epoch (i.e. > > 1970-01-01:00:00:00 GMT = 1970-01-01:00:00:10 TAI). > > Sorry, you just make this up.
You know that that is not true. (This is the lie direct in the third degree, also known as the Countercheck Quarrelsome; see http://www.bartleby.com/81/4209.html . I would not go so far on this list, had you not gone further already.) > Unix machines ticked the seconds of their > local oscillator from boot to shutdown. Local oscillator seconds differ > from SI seconds by typically +/- 10^-5 s or worse. Unix time had > multiple or fractional inserted and deleted leap seconds whenever the > administrator brutally readjusted the local clock using the > settimeofday(2) system call closer to UTC. You are confusing "what you got" with "what you were supposed to get". It's true that timekeeping practices in those days were deplorable at both the hardware and administrative levels. However, the *intent* was to return *the number of seconds since the Epoch*, as specified by the manual -- the point of a man page entry is to document how the application or system call is supposed to behave (except in the BUGS section). The Posix interpretation was a *reinterpretation*. > > The time(2) man > > page in the Sixth Edition (unchanged in the Seventh) of Research > > Unix says: > > > > .I Time > > returns the time since 00:00:00 GMT, Jan. 1, 1970, measured > > in seconds. > > Today we distinguish between "civilian" (UTC non-leap) seconds and > physical (SI) seconds. The authors of that manual very obviously didn't > make that distinction and you should not misrepresent them by claiming > that they did. I have every reason to think that when they spoke of seconds, they spoke of SI seconds, and that when they spoke of measuring, they meant measuring, not encoding. > In practice, the source code shows that time_t values are converted to > UTC clock displays without a leap second table, therefore they clearly > are just meant to be an encoding of UTC clock display values and nothing > else. So now you think that implementation defines intent? What is the use of having standards at all, in that case? -- Some people open all the Windows; John Cowan wise wives welcome the spring [EMAIL PROTECTED] by moving the Unix. http://www.reutershealth.com --ad for Unix Book Units (U.K.) http://www.ccil.org/~cowan (see http://cm.bell-labs.com/cm/cs/who/dmr/unix3image.gif)