---
name: "htons"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/byteorder"
---

# htons(3)

convert values between host and network byte order

Part of [byteorder(3)](/byteorder/3.md).

## NAME

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

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <arpa/inet.h>
```

**uint32\_t htonl(uint32\_t** *hostlong***);** **uint16\_t htons(uint16\_t** *hostshort***);**

**uint32\_t ntohl(uint32\_t** *netlong***);** **uint16\_t ntohs(uint16\_t** *netshort***);**

## DESCRIPTION

The **htonl**() function converts the unsigned integer *hostlong* from host byte order to network byte order.

The **htons**() function converts the unsigned short integer *hostshort* from host byte order to network byte order.

The **ntohl**() function converts the unsigned integer *netlong* from network byte order to host byte order.

The **ntohs**() function converts the unsigned short integer *netshort* from network byte order to host byte order.

On the i386 the host byte order is Least Significant Byte first, whereas the network byte order, as used on the Internet, is Most Significant Byte first.

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **htonl**(), **htons**(), **ntohl**(), **ntohs**() | Thread safety | MT-Safe |

## STANDARDS

POSIX.1-2008.

## HISTORY

POSIX.1-2001.

## SEE ALSO

[**bswap**(3)](/bswap/3.md), [**endian**(3)](/endian/3.md), [**gethostbyname**(3)](/gethostbyname/3.md), [**getservent**(3)](/getservent/3.md)
