# zmq_msg_copy(3) Manual Page

## NAME

zmq_msg_copy - copy content of a message to another message

## SYNOPSIS

int zmq_msg_copy (zmq_msg_t *dest, zmq_msg_t *src);

## 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.

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, allocate a new message using zmq_msg_init_size() and copy the message content using memcpy().

Caution | Never access zmq_msg_t members directly, instead always use the zmq_msg family of functions.

## 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

EFAULT

  Invalid message.

## SEE ALSO

zmq_msg_move(3) zmq_msg_init(3) zmq_msg_init_size(3) zmq_msg_init_data(3) zmq_msg_close(3) zmq(7)

## AUTHORS

This page was written by the ØMQ community. To make a change please read the ØMQ Contribution Policy at http://www.zeromq.org/docs:contributing.