htonl, htons, ntohl and ntohs types

Samuel Thibault samuel.thibault@ens-lyon.org
Fri Apr 21 12:27:00 GMT 2006


Lars Munch, le Fri 21 Apr 2006 14:11:51 +0200, a écrit :
> On Fri, Apr 21, 2006 at 12:00:00PM +0200, Corinna Vinschen wrote:
> > On Apr 21 11:25, Lars Munch wrote:
> > > Hello
> > > 
> > > I have noticed that the types of the functions htonl, htons, ntohs and
> > > ntohl differs from standard (and linux):
> > > 
> > > http://www.opengroup.org/onlinepubs/000095399/functions/htonl.html
> > > 
> > > Cygwin uses:
> > > 
> > > unsigned long int        ntohl(unsigned long int);
> > > unsigned short int       ntohs(unsigned short int);
> > > unsigned long int        htonl(unsigned long int);
> > > unsigned short int       htons(unsigned short int);
> > > 
> > > The standard (and Linux) has:
> > > 
> > > uint32_t htonl(uint32_t hostlong);
> > > uint16_t htons(uint16_t hostshort);
> > > uint32_t ntohl(uint32_t netlong);
> > > uint16_t ntohs(uint16_t netshort);
> > > 
> > > Is there any reason for this difference?
> > 
> > Nobody had a problem so far?
> > 
> > Fixed in CVS.
> 
> Wow, that was fast. Thanks!
> 
> My code still gives me warnings due to a problem with stdint.h.
> 
> The Xint32_t typedef's uses long instead of int:

That's on purpose: on windows, ints are 16bits.

If you need something like printing uint32_t-s, use "%"PRIx32 for instance.

Regards,
Samuel

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list