# nng_msg(5) Manual Page

## NAME

nng_msg - message

## SYNOPSIS

    #include <nng/nng.h>

    typedef struct nng_msg nng_msg;

## DESCRIPTION

An `nng_msg` represents a single message sent between Scalability Protocols peers. Messages internally have a body, containing the application supplied payload, and a header, containing protocol specific routing and similar related information.

| Using message-oriented functions is a good way to reduce the likelihood of data copies and improve application performance.

Messages are allocated using the `nng_msg_alloc()` function, and are deallocated using the `nng_msg_free()` function.

In addition there are other functions used to access message contents, including adding data to either the beginning or end of the message, automatic data conversion, and removing data from the beginning or end. These functions are designed to try to avoid copying message contents by making use of scratch areas at the beginning and end of the message.

## SEE ALSO

nng_aio_get_msg(3), nng_aio_set_msg(3), nng_msg_alloc(3), nng_msg_body(3), nng_msg_dup(3), nng_msg_free(3), nng_msg_header(3), nng_msg_header_len(3), nng_msg_len(3), nng_msg_capacity(3), nng_msg_reserve(3), nng_msg_realloc(3), nng_recvmsg(3), nng_sendmsg(3), nng_strerror(3), nng(7)