From 8b8fdbdc2e3fef03e21177eb3710491e4c080d43 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Thu, 23 Jan 2020 23:24:04 -0800 Subject: Publishing updates for v1.2.4 --- man/v1.2.4/nn_sendmsg.3compat.html | 218 +++++++++++++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 man/v1.2.4/nn_sendmsg.3compat.html (limited to 'man/v1.2.4/nn_sendmsg.3compat.html') diff --git a/man/v1.2.4/nn_sendmsg.3compat.html b/man/v1.2.4/nn_sendmsg.3compat.html new file mode 100644 index 00000000..4b1b4665 --- /dev/null +++ b/man/v1.2.4/nn_sendmsg.3compat.html @@ -0,0 +1,218 @@ +--- +version: v1.2.4 +layout: refman +--- + + + + + + + +nn_sendmsg(3compat) + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nanomsg/nn.h>
+
+int nn_sendmsg(int sock, const struct nn_msghdr *hdr, int flags);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nn_sendmsg() function sends the message described by hdr using the +socket sock.

+
+
+ + + + + +
+ + +This function is provided for API +compatibility with legacy libnanomsg. +Consider using the relevant modern API instead. +
+
+
+

The flags field may contain the special flag NN_DONTWAIT. +In this case, if the socket is unable to accept more data for sending, +the operation shall not block, but instead will fail with the error EAGAIN.

+
+
+

The hdr points to a structure of type struct nn_msghdr, which has the +following definition:

+
+
+
+
struct nn_iovec {
+    void * iov_base;
+    size_t iov_len;
+};
+
+struct nn_msghdr {
+    struct nn_iovec *msg_iov;
+    int              msg_iovlen;
+    void *           msg_control;
+    size_t           msg_controllen;
+};
+
+
+
+

The msg_iov is an array of gather items, permitting the message +to be spread into different memory blocks. +There are msg_iovlen elements in this array, each of which +has the base address (iov_base) and length (iov_len) indicated.

+
+
+

For buffers allocated for zero copy +(such as by nn_allocmsg()), the value +of iov_base should be the address of the pointer to the buffer, +rather than the address of the buffer itself. +In this case, the value of iov_len should be NN_MSG, +as the length is inferred from the allocated message. +If the msg_iovlen field is NN_MSG, then this function will free +the associated buffer after it is done with it, if it returns successfully. +(If the function returns with an error, then the caller retains ownership +of the associated buffer and may retry the operation or free the buffer +at its choice.)

+
+
+

The values of msg_control and msg_controllen describe a buffer +of ancillary data to send the message. +This is currently only useful to provide the message headers +used with raw mode sockets. +In all other circumstances these fields should be zero. +Details about this structure are covered in +nn_cmsg(3compat).

+
+
+ + + + + +
+ + +The send operation is performed asynchronously, and may not have +completed before this function returns control to the caller. +
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns the number of bytes sent on success, and -1 on error.

+
+
+
+
+

ERRORS

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+EAGAIN + +

The operation would block.

+
+EBADF + +

The socket sock is not open.

+
+EFSM + +

The socket cannot send in this state.

+
+EINVAL + +

The hdr is invalid.

+
+ENOTSUP + +

This protocol cannot send.

+
+ETIMEDOUT + +

Operation timed out.

+
+
+
+
+ +
+ + + \ No newline at end of file -- cgit v1.2.3-70-g09d2