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

# [NAME](#NAME)

zmq\_msg\_copy - copy content of a message to another message

# [SYNOPSIS](#SYNOPSIS)

**int zmq\_msg\_copy (zmq\_msg\_t \*dest, zmq\_msg\_t \*src);**

# [DESCRIPTION](#DESCRIPTION)

The *zmq\_msg\_copy()* function shall copy the message object referenced by *src* to the message object referenced by *dest*. The original content of *dest*, if any, shall be released. You must initialise *dest* before copying to it.

**Caution**

The implementation may choose not to physically copy the message content, rather to share the underlying buffer between *src* and *dest*. Avoid modifying message content after a message has been copied with *zmq\_msg\_copy()*, doing so can result in undefined behaviour. If what you need is an actual hard copy, initialize a new message using *zmq\_msg\_init\_buffer()* with the message content.

**Caution**

Never access *zmq\_msg\_t* members directly, instead always use the *zmq\_msg* family of functions.

# [RETURN VALUE](#RETURN_VALUE)

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

# [ERRORS](#ERRORS)

**EFAULT**

Invalid message.

# [EXAMPLE](#EXAMPLE)

**Copying a message**.

```
zmq_msg_t msg;
zmq_msg_init_buffer (&msg, "Hello, World", 12);
zmq_msg_t copy;
zmq_msg_init (&copy);
zmq_msg_copy (&copy, &msg);
...
zmq_msg_close (&copy);
zmq_msg_close (&msg);
```

# [SEE ALSO](#SEE_ALSO)

[**zmq\_msg\_move**(3)](/man/os/zeromq/zmq_msg_move.3) [**zmq\_msg\_init**(3)](/man/os/zeromq/zmq_msg_init.3) [**zmq\_msg\_init\_size**(3)](/man/os/zeromq/zmq_msg_init_size.3) [**zmq\_msg\_init\_buffer**(3)](/man/os/zeromq/zmq_msg_init_buffer.3) [**zmq\_msg\_init\_data**(3)](/man/os/zeromq/zmq_msg_init_data.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_copy(3) from zeromq 4.3.5-r13 (Chainguard OS)
Source: https://github.com/zeromq/libzmq
