FW: Definition of time_t changed from signed to unsigned...

Paul Eggert eggert at CS.UCLA.EDU
Tue Jul 13 05:01:50 UTC 2004

> From: Chris Richards [mailto:cj_richards at hotmail.com] 
> Sent: Friday, July 09, 2004 9:53 AM
> The problem is that the timezone subsystem seems to expect time_t to be
> signed. There are a number of functions that only work if time_t is signed. 
> E.g. function localsub() in file localtime.c.

It's not immediately obvious to me why localsub itself assumes that
time_t is signed, but I'll take your word for it.  I do know that
tzcode won't work well with 64-bit (signed) time_t.

> My question is: am I just using an obsolete version of the timezone source
> or should I just change the time_t typedef in the OS?

If it's at ftp://elsie.nci.nih.gov/pub/ then it's the latest source.

My advice is to keep time_t signed.  Lots of applications assume that
time_t is signed, and will break otherwise.  POSIX doesn't require
time_t to be signed (it's even allowed to be floating point!) but
implementations specify an unsigned time_t at their peril.

More information about the tz mailing list