Subject: Re: /usr/include/zconf.h uses HAVE_UNISTD_H
To: None <,>
From: Ignatios Souvatzis <>
List: tech-userlevel
Date: 10/13/1999 10:49:33
On Wed, Oct 13, 1999 at 03:56:17PM +0900, wrote:
> 	/usr/include/zconf.h always use HAVE_UNISTD_H, and it would affect
> 	definition of z_off_t (defined to off_t when HAVE_UNISTD_H is defined,
> 	long when not defined).  Is it safe?  I believe not every program
> 	defines HAVE_UNISTD_H.

Uhm... as far as I understand (and I only had one cup of coffee this morning):

Our OS offset type _is_ off_t, and our OS provides a unistd.h that
defines or uses it. "long" is wrong (well, it would happen to work on
our LP64 machines, for the time being). So, as long as libz and friends
use z_off_t where our system calls use offsets, using off_t is

Programs that don't use the function prototypes in unistd.h are
guaranteed to fail horribly... I discovered this the hard way when a
certain, now defunct, pop3 server (among other stuff) started to refuse
to delete messages after being upgraded to NetBSD-1.0. In fact, it
would double all messages in each session, and add (on top of that) the
undeleted ones. popper didn't use prototypes, and didn't check
ftruncate() return codes.


 * Progress (n.): The process through which Usenet has evolved from
   smart people in front of dumb terminals to dumb people in front of
   smart terminals.  -- (obscurity)