xs_msg_copy(3)

# xs_msg_copy(3) Manual Page

## NAME

xs_msg_copy - copy content of a message to another message

## SYNOPSIS

int xs_msg_copy (xs_msg_t *dest, xs_msg_t *src);

## DESCRIPTION

The xs_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 xs_msg_copy(), doing so can result in undefined behaviour. If what you need is an actual hard copy, allocate a new message using xs_msg_init_size() and copy the message content using memcpy().

Caution | Never access xs_msg_t members directly, instead always use the xs_msg family of functions.

## RETURN VALUE

The xs_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

xs_msg_move(3) xs_msg_init(3) xs_msg_init_size(3) xs_msg_init_data(3) xs_msg_close(3) xs(7)

## AUTHORS

The Crossroads documentation was written by Martin Sustrik <sustrik@250bpm.com> and Martin Lucina <martin@lucina.net>.