Date: Wed, 12 Mar 1997 21:10:02 -0800 (PST) From: Stephen McKay <syssgm@devetir.qld.gov.au> To: freebsd-bugs Subject: Re: kern/2966: ftruncate() problem in FreeBSD 2.1.7-RELEASE i386 Message-ID: <199703130510.VAA05202@freefall.freebsd.org>
index | next in thread | raw e-mail
The following reply was made to PR kern/2966; it has been noted by GNATS.
From: Stephen McKay <syssgm@devetir.qld.gov.au>
To: j@uriah.heep.sax.de (J Wunsch)
Cc: freebsd-gnats-submit@freebsd.org, syssgm@devetir.qld.gov.au
Subject: Re: kern/2966: ftruncate() problem in FreeBSD 2.1.7-RELEASE i386
Date: Thu, 13 Mar 1997 14:56:45 +1000 (EST)
j@uriah.heep.sax.de (J Wunsch) wrote:
> [Rick Ace misuses ftruncate()]
>
> Rule #1: Thou shalt declare all your functions.
>
> ftruncate() takes an argument of type off_t. If you fail to declare
> this function (and fail to cast the argument), you get what you
> deserve.
>
> #include <unistd.h>
Is it time to special-case truncate() and ftruncate() in <sys/types.h>
like lseek()? Ugly or not, it should reduce surprises. These 3 should
be the only special ones. mmap() uses off_t, but you can't get by without
<sys/mman.h>, and that declares mmap() correctly.
An other option is to include clever macro stuff in <sys/types.h> so that
use of lseek, truncate, and ftruncate is impossible unless <unistd.h> is
also included. Actually, I'm just being silly here :-) though it can be
done this way:
In <sys/types.h>
#ifndef _UNISTD_H_
#define truncate read_thine_C_book_novice
#endif
In <unistd.h>
#undef truncate
int truncate __P((const char *, off_t));
:-) :-)
Stephen.
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703130510.VAA05202>
