On Sat, Sep 20, 2014 at 11:28 AM, Mark Kettenis <mark.kette...@xs4all.nl> wrote:
>> Date: Sat, 20 Sep 2014 18:15:31 +0000
>> From: Miod Vallat <m...@online.fr>
>>
>> > shmctl(2)/shmget(2)/shmat(2) all document
>> >
>> > #include <sys/types.h>
>> > #include <sys/ipc.h>
>> > #include <sys/shm.h>
>> >
>> > as a requirement for calling these functions.
>>
>> That was my first thought, but according to
>> http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_ipc.h.html
>> ``The <sys/ipc.h> header shall define the uid_t, gid_t, mode_t and key_t
>> types as described in <sys/types.h>'', which is currently not the case.
>
> Unfortunately it doesn't allow us to make everything in <sys/types.h>
> available though.  So simply including <sys/types.h> from <sys/ipc.h>
> isn't the right solution.

No, it does permit us to just #include <sys/types.h>, because POSIX
reserves the *_t namespace in all its headers, and that's all that
<sys/types.h> exports. We've tried to do more minimal
#including/exporting generally, but SysV IPC is enough of a corner
that just pulling in <sys/types.h> from <sys/ipc.h> is fine by me.


Philip Guenther

Reply via email to