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