ZMQ\_MSG\_GET(3) 0MQ Manual ZMQ\_MSG\_GET(3)

# [NAME](#NAME)

zmq\_msg\_get - get message property

# [SYNOPSIS](#SYNOPSIS)

**int zmq\_msg\_get (zmq\_msg\_t \*message, int property);**

# [DESCRIPTION](#DESCRIPTION)

The *zmq\_msg\_get()* function shall return the value for the property specified by the *property* argument for the message pointed to by the *message* argument.

The following properties can be retrieved with the *zmq\_msg\_get()* function:

**ZMQ\_MORE**

Indicates that there are more message frames to follow after the *message*.

**ZMQ\_SRCFD**

Returns the file descriptor of the socket the *message* was read from. This allows application to retrieve the remote endpoint via [*getpeername(2)*](/man/os/zeromq/getpeername.2). Be aware that the respective socket might be closed already, reused even. Currently only implemented for TCP sockets.

**ZMQ\_SHARED**

Indicates that a message MAY share underlying storage with another copy of this message.

# [RETURN VALUE](#RETURN_VALUE)

The *zmq\_msg\_get()* function shall return the value for the property if successful. Otherwise it shall return -1 and set *errno* to one of the values defined below.

# [ERRORS](#ERRORS)

**EINVAL**

The requested *property* is unknown.

# [EXAMPLE](#EXAMPLE)

**Receiving a multi-frame message**.

```
zmq_msg_t frame;
while (true) {


    //  Create an empty 0MQ message to hold the message frame


    int rc = zmq_msg_init (&frame);


    assert (rc == 0);


    //  Block until a message is available to be received from socket


    rc = zmq_msg_recv (socket, &frame, 0);


    assert (rc != -1);


    if (zmq_msg_get (&frame, ZMQ_MORE))


        fprintf (stderr, "more\n");


    else {


        fprintf (stderr, "end\n");


        break;


    }


    zmq_msg_close (&frame);
}
```

# [SEE ALSO](#SEE_ALSO)

[**zmq\_msg\_set**(3)](/man/os/zeromq/zmq_msg_set.3) [**zmq\_msg\_init**(3)](/man/os/zeromq/zmq_msg_init.3) [**zmq\_msg\_close**(3)](/man/os/zeromq/zmq_msg_close.3) [**zmq**(7)](/man/os/zeromq/zmq.7)

# [AUTHORS](#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**.

08/29/2026 0MQ 4.3.5

---

Document: zmq_msg_get(3) from zeromq 4.3.5-r13 (Chainguard OS)
Source: https://github.com/zeromq/libzmq
