summaryrefslogtreecommitdiff
path: root/doc/zmq_msg_init_size.txt
blob: 9f09ade3e0a5cfa8f1e97bbb23d8c24302f42b01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
zmq_msg_init_size(3)
====================


NAME
----
zmq_msg_init_size - initialises 0MQ message of a specified size


SYNOPSIS
--------
'int zmq_msg_init_size (zmq_msg_t *msg, size_t size);'


DESCRIPTION
-----------
Initialises 0MQ message 'size' bytes long. The implementation chooses whether
it is more efficient to store message content on the stack (small messages) or
on the heap (large messages).  Therefore, never access message data directly
via 'zmq_msg_t' members, rather use 'zmq_msg_data' and 'zmq_msg_size' functions
to get message data and size.  Note that the message data are not nullified to
avoid the associated performance impact. Thus you should expect your message to
contain bogus data after this call.


RETURN VALUE
------------
In case of success the function returns zero. Otherwise it returns -1 and
sets 'errno' to the appropriate value.


ERRORS
------
*ENOMEM*::
memory to hold the message cannot be allocated.


EXAMPLE
-------
----
zmq_msg_t msg;
rc = zmq_msg_init_size (&msg, 6);
assert (rc == 0);
memcpy (zmq_msg_data (&msg), "ABCDEF", 6);
rc = zmq_send (s, &msg, 0);
assert (rc == 0);
----


SEE ALSO
--------
linkzmq:zmq_msg_close[3]
linkzmq:zmq_msg_init[3]
linkzmq:zmq_msg_init_data[3]
linkzmq:zmq_msg_data[3]
linkzmq:zmq_msg_size[3]


AUTHOR
------
Martin Sustrik <sustrik at 250bpm dot com>