nng_aio_set_iov(3)

nng_aio_set_iov3

Set scatter/gather vector

Usage

#include <nng/nng.h>
int nng_aio_set_iov(nng_aio *aio, unsigned int niov, nng_iov *iov);

Overview

The nng_aio_set_iov() function sets a scatter/gather vector iov on the handle aio.

The iov is a pointer to an array of niov nng_iov structures, which have the following definition:

    typedef struct nng_iov {
        void * iov_buf;
        size_t iov_len;
    };

The iov is copied into storage in the aio itself, so that callers may use stack allocated nng_iov structures. The values pointed to by the iov_buf members are not copied by this function though.

A maximum of four (4) nng_iov members may be supplied.

Note

Earlier versions of the library could accept longer scatter-gather lists. However, no known consumers have ever needed a scatter-gather list longer than 4 vectors. As a result, the implementation limit was reduced, and heap allocations which could fail were removed.

Return values

This function returns 0 on success, and non-zero otherwise.

Errors

NNG_EINVAL

Value of specified niov is too large.

From libnng-dev 1.10.1-2 in Debian 13 (Trixie). Parsed by carta from the page's man source.