summaryrefslogtreecommitdiff
path: root/man/v1.3.2/nng_msg_realloc.3.html
blob: 38af09481cbb1ca1eabcc97bc3750310032f9384 (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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
---
version: v1.3.2
layout: manpage_v2
---
<h1>nng_msg_realloc(3)</h1>
<div class="sect1">
<h2 id="_name">NAME</h2>
<div class="sectionbody">
<div class="paragraph">
<p>nng_msg_realloc - reallocate a message</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="pygments highlight"><code data-lang="c"><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp">
</span><span class="tok-cp"></span>
<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_realloc</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-n">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span></code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The <code>nng_msg_realloc()</code> function re-allocates a message so that it has
a body of length <em>size</em>.
This message attempts to avoid extra allocations,
and will reuse the existing memory when possible.</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
One way to further reduce message allocations is to allocate a message
larger than needed, then use this function or
<a href="nng_msg_chop.3.html"><code>nng_msg_chop()</code></a> to reduce the message size
to that actually needed.
The extra space left
over will still be present in the message, so that when the message size
needs to grow due to this function or <a href="nng_msg_append.3.html"><code>nng_msg_append()</code></a>
no actual memory allocations need to take place.
</td>
</tr>
</table>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Pointers to message body and header content obtained prior to this
function must not be in use, as the underlying memory used for the message
may have changed, particularly if the message size is increasing.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_return_values">RETURN VALUES</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This function returns 0 on success, and non-zero otherwise.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
<code>NNG_ENOMEM</code>
</td>
<td class="hdlist2">
<p>Insufficient free memory exists to reallocate a message.</p>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph text-left">
<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
<a href="nng_msg_append.3.html">nng_msg_append(3)</a>,
<a href="nng_msg_body.3.html">nng_msg_body(3)</a>,
<a href="nng_msg_chop.3.html">nng_msg_chop(3)</a>,
<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
<a href="nng_msg_insert.3.html">nng_msg_insert(3)</a>,
<a href="nng_msg_len.3.html">nng_msg_len(3)</a>,
<a href="nng_msg_trim.3.html">nng_msg_trim(3)</a>,
<a href="nng_strerror.3.html">nng_strerror(3)</a>,
<a href="nng_msg.5.html">nng_msg(5)</a>,
<a href="nng.7.html">nng(7)</a></p>
</div>
</div>
</div>