= zmq_msg_init(3)


== NAME
zmq_msg_init - initialise empty 0MQ message


== SYNOPSIS
*int zmq_msg_init (zmq_msg_t '*msg');*


== DESCRIPTION
The _zmq_msg_init()_ function shall initialise the message object referenced by
'msg' to represent an empty message.  This function is most useful when called
before receiving a message with _zmq_msg_recv()_.

CAUTION: Never access 'zmq_msg_t' members directly, instead always use the
_zmq_msg_ family of functions.

CAUTION: The functions _zmq_msg_init()_, _zmq_msg_init_data()_,
_zmq_msg_init_size()_ and _zmq_msg_init_buffer()_ are mutually exclusive.
Never initialise the same 'zmq_msg_t' twice.


== RETURN VALUE
The _zmq_msg_init()_ function always returns zero.


== ERRORS
No errors are defined.


== EXAMPLE
.Receiving a message from a socket
----
zmq_msg_t msg;
rc = zmq_msg_init (&msg);
assert (rc == 0);
int nbytes = zmq_msg_recv (socket, &msg, 0);
assert (nbytes != -1);
----


== SEE ALSO
* xref:zmq_msg_init_size.adoc[zmq_msg_init_size]
* xref:zmq_msg_init_buffer.adoc[zmq_msg_init_buffer]
* xref:zmq_msg_init_data.adoc[zmq_msg_init_data]
* xref:zmq_msg_close.adoc[zmq_msg_close]
* xref:zmq_msg_data.adoc[zmq_msg_data]
* xref:zmq_msg_size.adoc[zmq_msg_size]
* xref:zmq.adoc[zmq]


== AUTHORS
This page was written by the 0MQ community. To make a change please
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
