socklen_t (Re: Multicast problems [PATCH])
Stefan Farfeleder
stefan at fafoe.narf.at
Wed Jun 20 12:40:45 UTC 2007
On Wed, Jun 20, 2007 at 08:34:46AM -0400, Daniel Eischen wrote:
> On Wed, 20 Jun 2007, Stefan Farfeleder wrote:
>
> > On Tue, Jun 19, 2007 at 06:36:39PM -0400, Daniel Eischen wrote:
> >
> >> POSIX states that:
> >>
> >> o The <sys/socket.h> header shall define the type socklen_t,
> >> which is an integer type of width of at least 32 bits; see
> >> APPLICATION USAGE.
> >>
> >> and goes on to state:
> >>
> >> o The <sys/socket.h> header shall define the unsigned integer
> >> type sa_family_t.
> >>
> >> This seems to imply that our socklen_t should not be an unsigned
> >> integer (uint32_t), but a signed integer. In APPLICATION USAGE,
> >> POSIX states:
> >
> > I don't understand how you come to that conclusion. Why does not
> > mentioning whether socklen_t is signed or unsigned imply it should be
> > signed?
>
> Because it explicitly says unsigned for sa_family_t and does not
> say unsigned for socklen_t. To me, "integer" means a C (signed)
> integer.
It doesn't say signed or unsigned for socklen_t because both are
allowed. Eg. regoff_t in <regex.h> is explicitly defined as a "signed
integer type". I'm sure there are more, that's just the first one I
found.
Stefan
More information about the freebsd-current
mailing list