ZMQ_RECV(3) 0MQ Manual ZMQ_RECV(3) NAME zmq_recv - receive a message part from a socket SYNOPSIS int zmq_recv (void *socket, void *buf, size_t len, int flags); DESCRIPTION The zmq_recv() function shall receive a message from the socket referenced by the socket argument and store it in the buffer referenced by the buf ar- gument. Any bytes exceeding the length specified by the len argument shall be truncated. If there are no messages available on the specified socket the zmq_recv() function shall block until the request can be satisfied. The flags argument is a combination of the flags defined below: The buf argu- ment may be null if len is zero. ZMQ_DONTWAIT Specifies that the operation should be performed in non-blocking mode. If there are no messages available on the specified socket, the zmq_recv() function shall fail with errno set to EAGAIN. Multi-part messages A 0MQ message is composed of 1 or more message parts. 0MQ ensures atomic delivery of messages: peers shall receive either all message parts of a message or none at all. The total number of message parts is unlimited ex- cept by available memory. An application that processes multi-part messages must use the ZMQ_RCVMORE zmq_getsockopt(3) option after calling zmq_recv() to determine if there are further parts to receive. RETURN VALUE The zmq_recv() function shall return number of bytes in the message if suc- cessful. Note that the value can exceed the value of the len parameter in case the message was truncated. If not successful the function shall return -1 and set errno to one of the values defined below. ERRORS EAGAIN Either the timeout set via the socket-option ZMQ_RCVTIMEO (see zmq_set- sockopt(3)) has been reached (flag ZMQ_DONTWAIT not set) without being able to read a message from the socket or there are no messages avail- able at the moment (flag ZMQ_DONTWAIT set) and the operation would block. ENOTSUP The zmq_recv() operation is not supported by this socket type. EFSM The zmq_recv() operation cannot be performed on this socket at the mo- ment due to the socket not being in the appropriate state. This error may occur with socket types that switch between several states, such as ZMQ_REP. See the messaging patterns section of zmq_socket(3) for more information. ETERM The 0MQ context associated with the specified socket was terminated. ENOTSOCK The provided socket was invalid. EINTR The operation was interrupted by delivery of a signal before a message was available. EXAMPLE Receiving a message from a socket. char buf [256]; nbytes = zmq_recv (socket, buf, 256, 0); assert (nbytes != -1); SEE ALSO zmq_send(3) zmq_getsockopt(3) zmq_setsockopt(3) zmq_socket(7) zmq(7) AUTHORS This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing. 0MQ 4.3.5 10/09/2023 ZMQ_RECV(3)
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | EXAMPLE | SEE ALSO | AUTHORS
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zmq_recv&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
