ENDIAN(3C) Standard C Library Functions ENDIAN(3C)

endian, be16toh, be32toh, be64toh, betoh16, betoh32, betoh64, htobe16, htobe32, htobe64, htole16, htole32, htole64, le16toh, le32toh, le64toh, letoh16, letoh32, letoh64convert between big and little endian byte order

#include <endian.h>

uint16_t
be16toh(uint16_t be16);

uint32_t
be32toh(uint32_t be32);

uint64_t
betoh64(uint64_t be64);

uint16_t
betoh16(uint16_t be16);

uint32_t
betoh32(uint32_t be32);

uint64_t
be64toh(uint64_t be64);

uint16_t
htobe16(uint16_t host16);

uint32_t
htobe32(uint32_t host32);

uint64_t
htobe64(uint64_t host64);

uint16_t
htole16(uint16_t host16);

uint32_t
htole32(uint32_t host32);

uint64_t
htole64(uint64_t host64);

uint16_t
le16toh(uint16_t le16);

uint32_t
le32toh(uint32_t le32);

uint64_t
le64toh(uint64_t le64);

uint16_t
letoh16(uint16_t le16);

uint32_t
letoh32(uint32_t le32);

uint64_t
letoh64(uint64_t le64);

The endian family of functions convert 16, 32, and 64-bit values between the host's native byte order and big- or little-endian. All of the functions in this family simply return their input when the host's native byte order is the same as the desired order. For more information on endianness, see byteorder(7).

The (), (), and () functions take a 16-bit, 32-bit, or 64-bit value and convert it from big-endian to the host's native endianness, swapping bytes as required.

The (), (), and () functions take a 16-bit, 32-bit, or 64-bit value and convert it from little-endian to the host's native endianness, swapping bytes as required.

The (), (), and () functions take a 16-bit, 32-bit, or 64-bit value and convert it from the host's native endianness to big-endian, swapping bytes as required.

The (), (), and () functions take a 16-bit, 32-bit, or 64-bit value and convert it from the host's native endianness to little-endian, swapping bytes as required.

The functions (), (), (), (), (), and (), are the same as betoh16(), betoh32(), betoh64(), letoh16(), letoh32(), and letoh64() respectively. Historically, different platforms have diverged on the naming of these functions. To better support extant software, both are provided.

While these functions are common across multiple platforms, they have not been standardized. Portable applications should instead use the functions defined in byteorder(3C).

The functions always succeed and return a value that has been properly converted.

byteorder(3C), endian.h(3HEAD), attributes(7), byteorder(7)

August 2, 2018 OmniOS