NN_CMSG(3compat)
okay so bestie, welcome to the NN_CMSG(3compat) page from the NNG Reference Manual π this one is all about message control data, and itβs lowkey a legacy-compat situation, so letβs get into it β¨
πΈ NAME πΈ
nn_cmsg β message control data (compatible API) π
β¨ SYNOPSIS β¨
#include <nanomsg/nn.h>
struct nn_cmsghdr {
size_t cmsg_len;
int cmsg_level;
int cmsg_type;
};
π¦ DESCRIPTION π¦
The nn_cmsghdr structure describes a block of control data that is associated with a message either sent by nn_sendmsg() or received by nn_recvmsg() π
β οΈ Note: this structure and its supporting macros are provided for API compatibility with legacy libnanomsg. Consider using the relevant modern API instead. Not me being dramatic, itβs literally in the note π
Each header is followed by cmsg_len bytes of data, plus any padding required to align the structure.
The only defined ancillary data at this time is the protocol headers used by the protocols. This uses cmsg_level set to PROTO_SP and the cmsg_type set to SP_HDR. The actual data for this will vary depending on the protocol used. iykyk π
Convenience macros are provided to make working with these fields easier π«Ά
struct nn_cmsghdr *NN_CMSG_FIRSTHDR(struct nn_msghdr *hdr)β this macro returns the firststruct nn_cmsghdrheader inhdr.struct nn_cmsghdr *NN_CMSG_NXTHDR(struct nn_msghdr *hdr, struct nn_cmsghdr *ch)β this macro returns a pointer to the nextstruct nn_cmsghdrinhdrafterch.void *NN_CMSG_DATA(struct nn_cmsghdr *ch)β this macro returns a pointer to the header-specific data forch.size_t NN_CMSG_ALIGN(size_t len)β this macro returns the length specified bylen, plus any padding required to provide the necessary alignment for another structure.size_t NN_CMSG_SPACE(size_t len)β this macro returns the amount of space required for a header, withlenbytes of following data, and any necessary padding.size_t NN_CMSG_LEN(size_t len)β this macro evaluates to the length of the header (including alignment), and the associated data of lengthlen, but without any trailing padding to align for another header.
π SEE ALSO π
go give these a read too, bestie π:
mwah π β from the NNG Reference Manual, for NN_CMSG(3compat), dated 2026-01-13 β¨π
π¦ where this page comes from
- alpine 3.24: nng-doc 1.11-r0 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms