Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Aug 1998 17:57:23 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        dmm125@bellatlantic.net, jdp@polstra.com
Cc:        bugs@FreeBSD.ORG
Subject:   Re: error in libcompat (2.2.7)
Message-ID:  <199808270757.RAA07536@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> Also, in SysV/ftok.c, ftok is defined as 
>> 
>> key_t ftok(const char *path, char id) but /usr/include/sys/ipc.h declares
>> ftok as
>> 
>> ftok(const char *, int);
>> 
>> so basically in the source file the second arg is a char, but the header
>> file (ipc.h) declares the second arg to be an int.
>
>True, that's a bug.  I don't think it has any actual effect, since
>the function definition has the old pre-ANSI form:
>
>    key_t
>    ftok(path, id)
>	    const char *path;
>	    char id;
>
>which means that "id" is assumed to be passed as an int, even though
>only the low-order byte of it is used.  But it should be fixed.

Not a bug.  The prototype must declare the arg as an int to match the
old-style-but-still-ANSI definition.  The definition uses char for
historical reasons.  Changing it would be incompatible.  See rev.1.4
of ftok.3 for some notes about this.

Bruce

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199808270757.RAA07536>