Proposal: API for thread-safe time zone functions

Garrett Wollman wollman at
Fri Jun 8 15:29:15 UTC 2001

<<On Fri, 8 Jun 2001 16:10:59 +0100, "Clive D.W. Feather" <clive at> said:

> So in foo.h write the one line:

>     typedef struct timezone timezone_t;

So it's perfectly OK for me to also write:

	typedef struct __sFILE FILE; my headers as well?

You know very well that this is not portable.  The implementation
(which controls <timezone.h> in the scenario we're discussing) might
choose to define timezone_t some other way -- perhaps they make it a
`union __timezone *' instead.  Even if it were standardized, this
would still break when an application actually needed <timezone.h> and
my declaration in <foo.h> became redundant.  In any case, only a
faulty standard would declare that `timezone_t' is always a `struct
timezone'.  A good standard would not have a `timezone_t' to begin

(In the FreeBSD Project, and probably many other places, our coding
standard is very explicit: don't use typedefs for structures.  This
deficiency in C is precisely the reason for making that requirement.)


More information about the tz mailing list