From: Chris Richards [mailto:cj_richards@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.