---
name: "nng_msg_header_insert"
section: "3"
platform: "linux"
package: "libnng-dev"
version: "1.10.1-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/nng_msg_header_insert"
---

# nng\_msg\_header\_insert(3)

prepend to message header

## NAME

nng\_msg\_header\_insert - prepend to message header

## SYNOPSIS

```
#include <nng/nng.h>
int nng_msg_header_insert(nng_msg *msg, const void *val, size_t size);
int nng_msg_header_insert_u16(nng_msg *msg, uint16_t val16);
int nng_msg_header_insert_u32(nng_msg *msg, uint32_t val32);
int nng_msg_header_insert_u64(nng_msg *msg, uint64_t val64);
```

## DESCRIPTION

The `nng_msg_header_insert()` family of functions prepends data to the front of the headers of message *msg*, reallocating if necessary. The first function prepends *size* bytes, copying them from *val*. The remaining functions prepend the specified value (such as *val32*) in network-byte order (big-endian).

## RETURN VALUES

These functions return 0 on success, and non-zero otherwise.

## ERRORS

`NNG_ENOMEM`

Insufficient free memory exists.

## SEE ALSO

[nng\_msg\_alloc(3)](/nng_msg_alloc/3.md), [nng\_msg\_header(3)](/nng_msg_header/3.md), [nng\_msg\_header\_append(3)](/nng_msg_header_append/3.md), [nng\_msg\_header\_chop(3)](/nng_msg_header_chop/3.md), [nng\_msg\_header\_len(3)](/nng_msg_header_len/3.md), [nng\_msg\_header\_trim(3)](/nng_msg_header_trim/3.md), [nng\_msg\_free(3)](/nng_msg_free/3.md), nng\_msg\_capacity(3), nng\_msg\_reserve(3), [nng\_msg\_realloc(3)](/nng_msg_realloc/3.md), [nng\_strerror(3)](/nng_strerror/3.md), [nng(7)](/nng/7.md)
