NNG_AIO_SET_IOV(3) | NNG Reference Manual | NNG_AIO_SET_IOV(3) |
nng_aio_set_iov - set scatter/gather vector
#include <nng/nng.h> int nng_aio_set_iov(nng_aio *aio, unsigned int niov, nng_iov *iov);
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.
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.
This function returns 0 on success, and non-zero otherwise.
NNG_EINVAL
nng_aio_alloc(3), nng_aio_cancel(3), nng_aio_count(3), nng_aio_result(3), nng_aio(5), nng_iov(5), nng(7)
2025-01-05 |