BYTEORDER(3)

NAME
htonl, htons, ntohl, ntohs - convert values between host and network byte order

SYNOPSIS
#include <sys/types.h>
#include <machine/endian.h>
u_int32_t
htonl(u_int32_t host32);
u_int16_t
htons(u_int16_t host16);
u_int32_t
ntohl(u_int32_t net32);
u_int16_t
ntohs(u_int16_t net16);

DESCRIPTION
These routines convert 16 and 32 bit quantities between network byte order and host byte order. The last letter (s/l) is a mnemonic for the traditional names for such quantities, short and long, respectively. Today, the C concept of "short"/"long" integers need not coincide with this traditional misunderstanding. On machines which have a byte order which is the same as the network order, routines are defined as null macros.

These routines are most often used in conjunction with Internet addresses and ports as returned by gethostbyname(3) and getservent(3).

SEE ALSO
gethostbyname(3), getservent(3)

HISTORY
The byteorder functions appeared in 4.2BSD.

BUGS
On the VAX bytes are handled backwards from most everyone else in the world. This is not expected to be fixed in the near future.