<html>

<head>
<title>libogg - function - oggpack_writecheck</title>
<link rel=stylesheet href="style.css" type="text/css">
</head>

<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
<table border=0 width=100%>
<tr>
<td><p class=tiny>libogg documentation</p></td>
<td align=right><p class=tiny>libogg release 1.3.4 - 20190830</p></td>
</tr>
</table>

<h1>oggpack_writecheck</h1>

<p><i>declared in "ogg/ogg.h";</i></p>

<p>This function checks the readiness status of
an <a href="oggpack_buffer.html">oggpack_buffer</a> previously
initialized for writing using the
Ogg <a href="bitpacking.html">bitpacking</a> functions.  A write
buffer that encounters an error (such as a failed malloc) will clear
its internal state and release any in-use memory, flagging itself as
'not ready'.  Subsequent attempts to write using the buffer will
silently fail. This error state may be detected at any later time by
using oggpack_writecheck().  It is safe but not necessary to
call <a href="oggpack_writeclear.html">oggpack_writeclear()</a> on a buffer that
has flagged an error and released its resources.

<p><em>Important note to developers: Although libogg checks the
results of memory allocations, these checks are only useful on a
narrow range of embedded platforms. Allocation checks perform no
useful service on a general purpose desktop OS where pages are
routinely overallocated and all allocations succeed whether memory is
available or not.  The only way to detect an out of memory condition
on the vast majority of OSes is to watch for and capture segmentation
faults.  This function is useful only to embedded developers.</em>

<br><br>
<table border=0 color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
	<td>
<pre><b>
int  oggpack_writecheck(<a href="oggpack_buffer.html">oggpack_buffer</a> *b);
</b></pre>
	</td>
</tr>
</table>

<h3>Parameters</h3>
<dl>
<dt><i>b</i></dt>
<dd>An <a href="oggpack_buffer.html">oggpack_buffer</a> previously initialized for writing.</dd>
</dl>


<h3>Return Values</h3>
<blockquote>
<li><i>zero</i>: buffer is ready for writing</li>
<li><i>nonzero</i>: buffer is not ready or encountered an error</li>
</blockquote>
<p>

<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2019 Xiph.Org Foundation</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/">Ogg Container Format</a></p></td>
</tr><tr>
<td><p class=tiny>libogg documentation</p></td>
<td align=right><p class=tiny>libogg release 1.3.4 - 20190830</p></td>
</tr>
</table>


</body>

</html>
