Skip to content

Latest commit

 

History

History
76 lines (58 loc) · 2.12 KB

nng_aio_set_iov.3.adoc

File metadata and controls

76 lines (58 loc) · 2.12 KB

nng_aio_set_iov(3)

NAME

nng_aio_set_iov - set scatter/gather vector

SYNOPSIS

#include <nng/nng.h>

int nng_aio_set_iov(nng_aio *aio, unsigned int niov, nng_iov *iov);

DESCRIPTION

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.

Up to four nng_iov members may be supplied without causing any allocations, and thus this operation is guaranteed to succeed for values of niov less than four.

More than four (4) nng_iov members may be supplied, but this may require heap allocations, and so the operation may fail with NNG_ENOMEM. Additionally, not every operation can support longer vectors; the actual limit is determined by the system, but is generally at least sixteen (16). Furthermore, values for niov larger than sixty-four (64) will generally result in NNG_EINVAL.

RETURN VALUES

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

ERRORS

NNG_ENOMEM

Insufficient free memory to perform operation.

NNG_EINVAL

Value of specified niov is too large.