Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > 653a710f2a0a504fc4612e0d345625ec > files > 266

jasper-2.0.23-1.mga7.armv7hl.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>JasPer: I/O Streams</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">JasPer
   &#160;<span id="projectnumber">2.0.23</span>
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__iostreams.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">I/O Streams</div>  </div>
</div><!--header-->
<div class="contents">

<p>I/O streams.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga132e4d01a8e0157619bf793203f0e1d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga132e4d01a8e0157619bf793203f0e1d5">jas_stream_eof</a>(stream)&#160;&#160;&#160;(((stream)-&gt;flags_ &amp; JAS_STREAM_EOF) != 0)</td></tr>
<tr class="memdesc:ga132e4d01a8e0157619bf793203f0e1d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the EOF indicator for a stream.  <a href="#ga132e4d01a8e0157619bf793203f0e1d5">More...</a><br /></td></tr>
<tr class="separator:ga132e4d01a8e0157619bf793203f0e1d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1caba5c5fa7b5e1f1c3aff2863c34115"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga1caba5c5fa7b5e1f1c3aff2863c34115">jas_stream_error</a>(stream)&#160;&#160;&#160;(((stream)-&gt;flags_ &amp; JAS_STREAM_ERR) != 0)</td></tr>
<tr class="memdesc:ga1caba5c5fa7b5e1f1c3aff2863c34115"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the error indicator for a stream.  <a href="#ga1caba5c5fa7b5e1f1c3aff2863c34115">More...</a><br /></td></tr>
<tr class="separator:ga1caba5c5fa7b5e1f1c3aff2863c34115"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga75261e948b0852435caa3611a3713952"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga75261e948b0852435caa3611a3713952">jas_stream_clearerr</a>(stream)&#160;&#160;&#160;((stream)-&gt;flags_ &amp;= ~(JAS_STREAM_ERR | JAS_STREAM_EOF))</td></tr>
<tr class="memdesc:ga75261e948b0852435caa3611a3713952"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the error indicator for a stream.  <a href="#ga75261e948b0852435caa3611a3713952">More...</a><br /></td></tr>
<tr class="separator:ga75261e948b0852435caa3611a3713952"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1660195dad2582906a2dbfdd75a73089"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga1660195dad2582906a2dbfdd75a73089">jas_stream_getrwlimit</a>(stream)&#160;&#160;&#160;(((const jas_stream_t *)(stream))-&gt;rwlimit_)</td></tr>
<tr class="memdesc:ga1660195dad2582906a2dbfdd75a73089"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the read/write limit for a stream.  <a href="#ga1660195dad2582906a2dbfdd75a73089">More...</a><br /></td></tr>
<tr class="separator:ga1660195dad2582906a2dbfdd75a73089"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5f696c12475987bde1e4c2121726688"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#gaa5f696c12475987bde1e4c2121726688">jas_stream_getrwcount</a>(stream)&#160;&#160;&#160;(((const jas_stream_t *)(stream))-&gt;rwcnt_)</td></tr>
<tr class="memdesc:gaa5f696c12475987bde1e4c2121726688"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the read/write count for a stream.  <a href="#gaa5f696c12475987bde1e4c2121726688">More...</a><br /></td></tr>
<tr class="separator:gaa5f696c12475987bde1e4c2121726688"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f9abec75332916849eaadbeb465c54e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga4f9abec75332916849eaadbeb465c54e">jas_stream_getc</a>(stream)&#160;&#160;&#160;jas_stream_getc_func(stream)</td></tr>
<tr class="memdesc:ga4f9abec75332916849eaadbeb465c54e"><td class="mdescLeft">&#160;</td><td class="mdescRight">jas_stream_getc Read a character from a stream.  <a href="#ga4f9abec75332916849eaadbeb465c54e">More...</a><br /></td></tr>
<tr class="separator:ga4f9abec75332916849eaadbeb465c54e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga445e54b8b55198e1516b585f094b1619"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga445e54b8b55198e1516b585f094b1619">jas_stream_putc</a>(stream,  c)&#160;&#160;&#160;jas_stream_putc_func(stream, c)</td></tr>
<tr class="memdesc:ga445e54b8b55198e1516b585f094b1619"><td class="mdescLeft">&#160;</td><td class="mdescRight">jas_stream_putc Write a character to a stream.  <a href="#ga445e54b8b55198e1516b585f094b1619">More...</a><br /></td></tr>
<tr class="separator:ga445e54b8b55198e1516b585f094b1619"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga01977e4add3b711a8d2d224495162419"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga01977e4add3b711a8d2d224495162419">jas_stream_peekc</a>(stream)</td></tr>
<tr class="memdesc:ga01977e4add3b711a8d2d224495162419"><td class="mdescLeft">&#160;</td><td class="mdescRight">Look at the next character to be read from a stream without actually removing the character from the stream.  <a href="#ga01977e4add3b711a8d2d224495162419">More...</a><br /></td></tr>
<tr class="separator:ga01977e4add3b711a8d2d224495162419"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga6e285e73fb0dff3a3224b25fdecfb520"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT jas_stream_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga6e285e73fb0dff3a3224b25fdecfb520">jas_stream_fopen</a> (const char *filename, const char *mode)</td></tr>
<tr class="memdesc:ga6e285e73fb0dff3a3224b25fdecfb520"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a file as a stream.  <a href="#ga6e285e73fb0dff3a3224b25fdecfb520">More...</a><br /></td></tr>
<tr class="separator:ga6e285e73fb0dff3a3224b25fdecfb520"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga601a0c50700e1af5c00c5e28c432db5f"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT jas_stream_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga601a0c50700e1af5c00c5e28c432db5f">jas_stream_memopen</a> (char *buffer, int buffer_size)</td></tr>
<tr class="memdesc:ga601a0c50700e1af5c00c5e28c432db5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a memory buffer as a stream.  <a href="#ga601a0c50700e1af5c00c5e28c432db5f">More...</a><br /></td></tr>
<tr class="separator:ga601a0c50700e1af5c00c5e28c432db5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac27c7c81802a210f30152e1fc318553a"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT jas_stream_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#gac27c7c81802a210f30152e1fc318553a">jas_stream_memopen2</a> (char *buffer, size_t buffer_size)</td></tr>
<tr class="separator:gac27c7c81802a210f30152e1fc318553a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae03645635bda194410c1d71b33e870be"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT jas_stream_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#gae03645635bda194410c1d71b33e870be">jas_stream_fdopen</a> (int fd, const char *mode)</td></tr>
<tr class="memdesc:gae03645635bda194410c1d71b33e870be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a file descriptor as a stream.  <a href="#gae03645635bda194410c1d71b33e870be">More...</a><br /></td></tr>
<tr class="separator:gae03645635bda194410c1d71b33e870be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga977ef9d4498298f7e4d9728208ae1b7d"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT jas_stream_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga977ef9d4498298f7e4d9728208ae1b7d">jas_stream_freopen</a> (const char *path, const char *mode, FILE *fp)</td></tr>
<tr class="memdesc:ga977ef9d4498298f7e4d9728208ae1b7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a stdio (i.e., C standard library) stream as a stream.  <a href="#ga977ef9d4498298f7e4d9728208ae1b7d">More...</a><br /></td></tr>
<tr class="separator:ga977ef9d4498298f7e4d9728208ae1b7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga316068f752d4f273d9bf31ed7e77b2e4"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT jas_stream_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga316068f752d4f273d9bf31ed7e77b2e4">jas_stream_tmpfile</a> (void)</td></tr>
<tr class="memdesc:ga316068f752d4f273d9bf31ed7e77b2e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a temporary file as a stream.  <a href="#ga316068f752d4f273d9bf31ed7e77b2e4">More...</a><br /></td></tr>
<tr class="separator:ga316068f752d4f273d9bf31ed7e77b2e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad513dc45da8bcb4bb5dc4d6dbe1e9a10"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#gad513dc45da8bcb4bb5dc4d6dbe1e9a10">jas_stream_close</a> (jas_stream_t *stream)</td></tr>
<tr class="memdesc:gad513dc45da8bcb4bb5dc4d6dbe1e9a10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close a stream.  <a href="#gad513dc45da8bcb4bb5dc4d6dbe1e9a10">More...</a><br /></td></tr>
<tr class="separator:gad513dc45da8bcb4bb5dc4d6dbe1e9a10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab94e4ab4be0b54d9f0b0c79448e43244"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#gab94e4ab4be0b54d9f0b0c79448e43244">jas_stream_setrwlimit</a> (jas_stream_t *stream, long rwlimit)</td></tr>
<tr class="memdesc:gab94e4ab4be0b54d9f0b0c79448e43244"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the read/write limit for a stream.  <a href="#gab94e4ab4be0b54d9f0b0c79448e43244">More...</a><br /></td></tr>
<tr class="separator:gab94e4ab4be0b54d9f0b0c79448e43244"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebe2e860f79cb6771fe09bc0bbc67e6b"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#gaebe2e860f79cb6771fe09bc0bbc67e6b">jas_stream_setrwcount</a> (jas_stream_t *stream, long rw_count)</td></tr>
<tr class="memdesc:gaebe2e860f79cb6771fe09bc0bbc67e6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the read/write count for a stream.  <a href="#gaebe2e860f79cb6771fe09bc0bbc67e6b">More...</a><br /></td></tr>
<tr class="separator:gaebe2e860f79cb6771fe09bc0bbc67e6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad919fe0674bc4bbf45a3aef2d82525d4"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#gad919fe0674bc4bbf45a3aef2d82525d4">jas_stream_read</a> (jas_stream_t *stream, void *buffer, unsigned count)</td></tr>
<tr class="memdesc:gad919fe0674bc4bbf45a3aef2d82525d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read characters from a stream into a buffer.  <a href="#gad919fe0674bc4bbf45a3aef2d82525d4">More...</a><br /></td></tr>
<tr class="separator:gad919fe0674bc4bbf45a3aef2d82525d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09ca7376fabdc56c5d057e199df560f5"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga09ca7376fabdc56c5d057e199df560f5">jas_stream_peek</a> (jas_stream_t *stream, void *buffer, size_t count)</td></tr>
<tr class="memdesc:ga09ca7376fabdc56c5d057e199df560f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempt to retrieve one or more pending characters of input from a stream into a buffer without actually removing the characters from the stream.  <a href="#ga09ca7376fabdc56c5d057e199df560f5">More...</a><br /></td></tr>
<tr class="separator:ga09ca7376fabdc56c5d057e199df560f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga94b873a33f3f7f0391517b491fd16a0f"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga94b873a33f3f7f0391517b491fd16a0f">jas_stream_write</a> (jas_stream_t *stream, const void *buffer, unsigned count)</td></tr>
<tr class="memdesc:ga94b873a33f3f7f0391517b491fd16a0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write characters from a buffer to a stream.  <a href="#ga94b873a33f3f7f0391517b491fd16a0f">More...</a><br /></td></tr>
<tr class="separator:ga94b873a33f3f7f0391517b491fd16a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3950db78bc0da64b78893429b36ba160"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga3950db78bc0da64b78893429b36ba160">jas_stream_printf</a> (jas_stream_t *stream, const char *format,...)</td></tr>
<tr class="memdesc:ga3950db78bc0da64b78893429b36ba160"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write formatted output to a stream.  <a href="#ga3950db78bc0da64b78893429b36ba160">More...</a><br /></td></tr>
<tr class="separator:ga3950db78bc0da64b78893429b36ba160"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga455840be61c2d55ffe1f12e98c0a7f5d"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga455840be61c2d55ffe1f12e98c0a7f5d">jas_stream_puts</a> (jas_stream_t *stream, const char *s)</td></tr>
<tr class="memdesc:ga455840be61c2d55ffe1f12e98c0a7f5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a string to a stream.  <a href="#ga455840be61c2d55ffe1f12e98c0a7f5d">More...</a><br /></td></tr>
<tr class="separator:ga455840be61c2d55ffe1f12e98c0a7f5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d77b156c525c8eabd0973124aa0015f"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga2d77b156c525c8eabd0973124aa0015f">jas_stream_gets</a> (jas_stream_t *stream, char *buffer, int buffer_size)</td></tr>
<tr class="memdesc:ga2d77b156c525c8eabd0973124aa0015f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a line of input from a stream.  <a href="#ga2d77b156c525c8eabd0973124aa0015f">More...</a><br /></td></tr>
<tr class="separator:ga2d77b156c525c8eabd0973124aa0015f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b6de22cb55a945466b6dd6c88b1a0f0"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga3b6de22cb55a945466b6dd6c88b1a0f0">jas_stream_ungetc</a> (jas_stream_t *stream, int c)</td></tr>
<tr class="memdesc:ga3b6de22cb55a945466b6dd6c88b1a0f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put a character back on a stream.  <a href="#ga3b6de22cb55a945466b6dd6c88b1a0f0">More...</a><br /></td></tr>
<tr class="separator:ga3b6de22cb55a945466b6dd6c88b1a0f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2e0b7559f669c12531ba34f7427d22c0"><td class="memItemLeft" align="right" valign="top">JAS_ATTRIBUTE_PURE JAS_DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga2e0b7559f669c12531ba34f7427d22c0">jas_stream_isseekable</a> (jas_stream_t *stream)</td></tr>
<tr class="memdesc:ga2e0b7559f669c12531ba34f7427d22c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if stream supports seeking.  <a href="#ga2e0b7559f669c12531ba34f7427d22c0">More...</a><br /></td></tr>
<tr class="separator:ga2e0b7559f669c12531ba34f7427d22c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0f563c74ee30deb02d359353cbbe9aaf"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga0f563c74ee30deb02d359353cbbe9aaf">jas_stream_seek</a> (jas_stream_t *stream, long offset, int origin)</td></tr>
<tr class="memdesc:ga0f563c74ee30deb02d359353cbbe9aaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the current position within the stream.  <a href="#ga0f563c74ee30deb02d359353cbbe9aaf">More...</a><br /></td></tr>
<tr class="separator:ga0f563c74ee30deb02d359353cbbe9aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d61c716424db938ed78463da4fde6ea"><td class="memItemLeft" align="right" valign="top">JAS_ATTRIBUTE_PURE JAS_DLLEXPORT long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga2d61c716424db938ed78463da4fde6ea">jas_stream_tell</a> (jas_stream_t *stream)</td></tr>
<tr class="memdesc:ga2d61c716424db938ed78463da4fde6ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current position within the stream.  <a href="#ga2d61c716424db938ed78463da4fde6ea">More...</a><br /></td></tr>
<tr class="separator:ga2d61c716424db938ed78463da4fde6ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed13edeb5bb822c61ee907a899a70c45"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#gaed13edeb5bb822c61ee907a899a70c45">jas_stream_rewind</a> (jas_stream_t *stream)</td></tr>
<tr class="memdesc:gaed13edeb5bb822c61ee907a899a70c45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Seek to the beginning of a stream.  <a href="#gaed13edeb5bb822c61ee907a899a70c45">More...</a><br /></td></tr>
<tr class="separator:gaed13edeb5bb822c61ee907a899a70c45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga023bd8c9c05117468b8fa7aebe2ff5e3"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga023bd8c9c05117468b8fa7aebe2ff5e3">jas_stream_flush</a> (jas_stream_t *stream)</td></tr>
<tr class="memdesc:ga023bd8c9c05117468b8fa7aebe2ff5e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flush any pending output to a stream.  <a href="#ga023bd8c9c05117468b8fa7aebe2ff5e3">More...</a><br /></td></tr>
<tr class="separator:ga023bd8c9c05117468b8fa7aebe2ff5e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf7b906135adaaa73c9f22df0e0aab023"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#gaf7b906135adaaa73c9f22df0e0aab023">jas_stream_copy</a> (jas_stream_t *destination, jas_stream_t *source, int count)</td></tr>
<tr class="memdesc:gaf7b906135adaaa73c9f22df0e0aab023"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy data from one stream to another.  <a href="#gaf7b906135adaaa73c9f22df0e0aab023">More...</a><br /></td></tr>
<tr class="separator:gaf7b906135adaaa73c9f22df0e0aab023"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf6429c3d7e6afc17156cc20ab7424527"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#gaf6429c3d7e6afc17156cc20ab7424527">jas_stream_display</a> (jas_stream_t *stream, FILE *fp, int count)</td></tr>
<tr class="memdesc:gaf6429c3d7e6afc17156cc20ab7424527"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print a hex dump of data read from a stream.  <a href="#gaf6429c3d7e6afc17156cc20ab7424527">More...</a><br /></td></tr>
<tr class="separator:gaf6429c3d7e6afc17156cc20ab7424527"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac4184517ac5919c92bd24d948bad0ec7"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#gac4184517ac5919c92bd24d948bad0ec7">jas_stream_gobble</a> (jas_stream_t *stream, int count)</td></tr>
<tr class="memdesc:gac4184517ac5919c92bd24d948bad0ec7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Consume (i.e., discard) characters from stream.  <a href="#gac4184517ac5919c92bd24d948bad0ec7">More...</a><br /></td></tr>
<tr class="separator:gac4184517ac5919c92bd24d948bad0ec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga037fde03d888ea04f904f570cb1cf790"><td class="memItemLeft" align="right" valign="top">JAS_DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga037fde03d888ea04f904f570cb1cf790">jas_stream_pad</a> (jas_stream_t *stream, int count, int value)</td></tr>
<tr class="memdesc:ga037fde03d888ea04f904f570cb1cf790"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a fill character multiple times to a stream.  <a href="#ga037fde03d888ea04f904f570cb1cf790">More...</a><br /></td></tr>
<tr class="separator:ga037fde03d888ea04f904f570cb1cf790"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b5a1bdfc697f866ec4c4663aec57b82"><td class="memItemLeft" align="right" valign="top">JAS_ATTRIBUTE_PURE JAS_DLLEXPORT long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__iostreams.html#ga9b5a1bdfc697f866ec4c4663aec57b82">jas_stream_length</a> (jas_stream_t *stream)</td></tr>
<tr class="memdesc:ga9b5a1bdfc697f866ec4c4663aec57b82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the file associated with the specified stream.  <a href="#ga9b5a1bdfc697f866ec4c4663aec57b82">More...</a><br /></td></tr>
<tr class="separator:ga9b5a1bdfc697f866ec4c4663aec57b82"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>I/O streams. </p>
<p>For more detail on I/O streams, please refer to <a href="iostreams__page.html">here</a>. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga75261e948b0852435caa3611a3713952"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga75261e948b0852435caa3611a3713952">&#9670;&nbsp;</a></span>jas_stream_clearerr</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define jas_stream_clearerr</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">stream</td><td>)</td>
          <td>&#160;&#160;&#160;((stream)-&gt;flags_ &amp;= ~(JAS_STREAM_ERR | JAS_STREAM_EOF))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clear the error indicator for a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>The stream whose error indicator is to be cleared.</td></tr>
  </table>
  </dd>
</dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>TODO/FIXME: Should this macro evaluate to void? </dd></dl>

</div>
</div>
<a id="ga132e4d01a8e0157619bf793203f0e1d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga132e4d01a8e0157619bf793203f0e1d5">&#9670;&nbsp;</a></span>jas_stream_eof</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define jas_stream_eof</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">stream</td><td>)</td>
          <td>&#160;&#160;&#160;(((stream)-&gt;flags_ &amp; JAS_STREAM_EOF) != 0)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the EOF indicator for a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>The stream whose EOF indicator is to be queried.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The value of the EOF indicator is returned. A nonzero value indicates that the stream has encountered EOF. </dd></dl>

</div>
</div>
<a id="ga1caba5c5fa7b5e1f1c3aff2863c34115"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1caba5c5fa7b5e1f1c3aff2863c34115">&#9670;&nbsp;</a></span>jas_stream_error</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define jas_stream_error</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">stream</td><td>)</td>
          <td>&#160;&#160;&#160;(((stream)-&gt;flags_ &amp; JAS_STREAM_ERR) != 0)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the error indicator for a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>The stream whose error indicator is to be queried. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The value of the error indicator is returned. A nonzero value indicates that the stream has encountered an error of some type (such as an I/O error). Note that EOF is not an error. </dd></dl>

</div>
</div>
<a id="ga4f9abec75332916849eaadbeb465c54e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4f9abec75332916849eaadbeb465c54e">&#9670;&nbsp;</a></span>jas_stream_getc</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define jas_stream_getc</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">stream</td><td>)</td>
          <td>&#160;&#160;&#160;jas_stream_getc_func(stream)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>jas_stream_getc Read a character from a stream. </p>

</div>
</div>
<a id="gaa5f696c12475987bde1e4c2121726688"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa5f696c12475987bde1e4c2121726688">&#9670;&nbsp;</a></span>jas_stream_getrwcount</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define jas_stream_getrwcount</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">stream</td><td>)</td>
          <td>&#160;&#160;&#160;(((const jas_stream_t *)(stream))-&gt;rwcnt_)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the read/write count for a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream whose read/write count is to be queried.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The read/write count is returned. This operation cannot fail. </dd></dl>

</div>
</div>
<a id="ga1660195dad2582906a2dbfdd75a73089"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1660195dad2582906a2dbfdd75a73089">&#9670;&nbsp;</a></span>jas_stream_getrwlimit</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define jas_stream_getrwlimit</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">stream</td><td>)</td>
          <td>&#160;&#160;&#160;(((const jas_stream_t *)(stream))-&gt;rwlimit_)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the read/write limit for a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream whose read/write limit is to be queried. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The read/write limit for the stream is returned. This operation cannot fail. A negative read/write limit indicates no limit (i.e., an limit that is effectively infinite). </dd></dl>

</div>
</div>
<a id="ga01977e4add3b711a8d2d224495162419"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga01977e4add3b711a8d2d224495162419">&#9670;&nbsp;</a></span>jas_stream_peekc</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define jas_stream_peekc</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">stream</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((stream)-&gt;cnt_ &lt;= 0) ? jas_stream_fillbuf(stream, 0) : \</div><div class="line">          ((int)(*(stream)-&gt;ptr_)))</div></div><!-- fragment -->
<p>Look at the next character to be read from a stream without actually removing the character from the stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream to be examined.</td></tr>
  </table>
  </dd>
</dl>
<p>This function examines the next character that would be read from the stream and returns this character without actually removing it from the stream.</p>
<dl class="section return"><dt>Returns</dt><dd>If the peek operation fails (e.g., due to EOF or I/O error), EOF is returned. Otherwise, the character that would be next read from the stream is returned. </dd></dl>

</div>
</div>
<a id="ga445e54b8b55198e1516b585f094b1619"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga445e54b8b55198e1516b585f094b1619">&#9670;&nbsp;</a></span>jas_stream_putc</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define jas_stream_putc</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">stream, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;jas_stream_putc_func(stream, c)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>jas_stream_putc Write a character to a stream. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gad513dc45da8bcb4bb5dc4d6dbe1e9a10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad513dc45da8bcb4bb5dc4d6dbe1e9a10">&#9670;&nbsp;</a></span>jas_stream_close()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT int jas_stream_close </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Close a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A (nonnull) pointer to the stream to be closed.</td></tr>
  </table>
  </dd>
</dl>
<p>The close operation will implicitly flush any pending output to the stream before closing. If such a flush operation fails, this will be reflected in the return value of this function. For many systems, it is likely that the main reason that this function can fail is due to an I/O error when flushing buffered output.</p>
<dl class="section return"><dt>Returns</dt><dd>If no errors are encountered when closing the stream, 0 is returned. Otherwise, a nonzero value is returned. </dd></dl>

</div>
</div>
<a id="gaf7b906135adaaa73c9f22df0e0aab023"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf7b906135adaaa73c9f22df0e0aab023">&#9670;&nbsp;</a></span>jas_stream_copy()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT int jas_stream_copy </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>destination</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy data from one stream to another. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">destination</td><td>A pointer to the stream that is the destination for the copy. </td></tr>
    <tr><td class="paramname">source</td><td>A pointer to the stream that is the source for the copy. </td></tr>
    <tr><td class="paramname">count</td><td>The number of characters to copy.</td></tr>
  </table>
  </dd>
</dl>
<p>The function copies the specified number of characters from the source stream to the destination stream.</p>
<dl class="section return"><dt>Returns</dt><dd>Upon success, 0 is returned; otherwise, -1 is returned.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000004">Todo:</a></b></dt><dd>TODO/FIXME: count should probably be a size_t; return type ssize_t? </dd></dl>

</div>
</div>
<a id="gaf6429c3d7e6afc17156cc20ab7424527"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf6429c3d7e6afc17156cc20ab7424527">&#9670;&nbsp;</a></span>jas_stream_display()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT int jas_stream_display </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>fp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print a hex dump of data read from a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream from which to read data. </td></tr>
    <tr><td class="paramname">fp</td><td>A pointer to a stdio stream (i.e., FILE) to which to print the hex dump. </td></tr>
    <tr><td class="paramname">count</td><td>The number of characters to include in the hex dump.</td></tr>
  </table>
  </dd>
</dl>
<p>This function prints a hex dump of data read from a stream to a stdio stream. This function is most likely to be useful for debugging.</p>
<dl class="section return"><dt>Returns</dt><dd>Upon success, 0 is returned. Otherwise, a negative value is returned.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>TODO/FIXME: should count be unsigned int or size_t instead of int? </dd></dl>

</div>
</div>
<a id="gae03645635bda194410c1d71b33e870be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae03645635bda194410c1d71b33e870be">&#9670;&nbsp;</a></span>jas_stream_fdopen()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT jas_stream_t* jas_stream_fdopen </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Open a file descriptor as a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>The file descriptor of the file to open as a stream. </td></tr>
    <tr><td class="paramname">mode</td><td>A pointer to a string specifying the open mode. The format of this string is similar to that of the fdopen function in the C standard library.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, a pointer to the opened stream is returned. Otherwise, a null pointer is returned. </dd></dl>

</div>
</div>
<a id="ga023bd8c9c05117468b8fa7aebe2ff5e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga023bd8c9c05117468b8fa7aebe2ff5e3">&#9670;&nbsp;</a></span>jas_stream_flush()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT int jas_stream_flush </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Flush any pending output to a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream for which output should be flushed.</td></tr>
  </table>
  </dd>
</dl>
<p>The function flushes any buffered output to the underlying file object. </p><dl class="section return"><dt>Returns</dt><dd>Upon success, zero is returned. Otherwise, a negative value is returned. </dd></dl>

</div>
</div>
<a id="ga6e285e73fb0dff3a3224b25fdecfb520"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6e285e73fb0dff3a3224b25fdecfb520">&#9670;&nbsp;</a></span>jas_stream_fopen()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT jas_stream_t* jas_stream_fopen </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Open a file as a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>A pointer to the pathname of the file to be opened. </td></tr>
    <tr><td class="paramname">mode</td><td>A pointer to the string specifying the open mode. The open mode is similar to that used by the fopen function in the C standard library.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, a pointer to the opened stream is returned. Otherwise, a null pointer is returned. </dd></dl>

</div>
</div>
<a id="ga977ef9d4498298f7e4d9728208ae1b7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga977ef9d4498298f7e4d9728208ae1b7d">&#9670;&nbsp;</a></span>jas_stream_freopen()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT jas_stream_t* jas_stream_freopen </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>fp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Open a stdio (i.e., C standard library) stream as a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>A pointer to a string containing the path of the filename associated with the stdio stream. </td></tr>
    <tr><td class="paramname">mode</td><td>A pointer to a string containing the open mode to be used for the (JasPer) stream. This string is similar to that used by the fdopen function in the C standard library. </td></tr>
    <tr><td class="paramname">fp</td><td>A pointer to the stdio stream.</td></tr>
  </table>
  </dd>
</dl>
<p>It is unspecified whether the open mode specified by mode can be changed from the open mode used for opening the stdio stream.</p>
<dl class="section return"><dt>Returns</dt><dd>Upon success, a pointer to the opened stream is returned. Otherwise, a null pointer is returned. </dd></dl>

</div>
</div>
<a id="ga2d77b156c525c8eabd0973124aa0015f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2d77b156c525c8eabd0973124aa0015f">&#9670;&nbsp;</a></span>jas_stream_gets()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT char* jas_stream_gets </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>buffer_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read a line of input from a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream from which to read input. </td></tr>
    <tr><td class="paramname">buffer</td><td>A pointer to the start of the buffer to hold to input to be read. </td></tr>
    <tr><td class="paramname">buffer_size</td><td>The size of the buffer in characters.</td></tr>
  </table>
  </dd>
</dl>
<p>The function reads a line of input from a stream into a buffer. If a newline character is read, it is placed in the buffer. Since the buffer may be too small to hold the input, this operation can fail due to attempted buffer overrun.</p>
<dl class="section return"><dt>Returns</dt><dd>If the operation fails (e.g., due to an I/O error or attempted buffer overrun), a null pointer is returned. Otherwise, buffer is returned. </dd></dl>

</div>
</div>
<a id="gac4184517ac5919c92bd24d948bad0ec7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac4184517ac5919c92bd24d948bad0ec7">&#9670;&nbsp;</a></span>jas_stream_gobble()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT int jas_stream_gobble </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Consume (i.e., discard) characters from stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream from which to discard data. </td></tr>
    <tr><td class="paramname">count</td><td>The number of characters to discard.</td></tr>
  </table>
  </dd>
</dl>
<p>This function reads and discards the specified number of characters from the given stream.</p>
<dl class="section return"><dt>Returns</dt><dd>This function returns the number of characters read and discarded. If an error or EOF is encountered, the number of characters read will be less than count. To distinguish EOF from an I/O error, <a class="el" href="group__iostreams.html#ga132e4d01a8e0157619bf793203f0e1d5" title="Get the EOF indicator for a stream.">jas_stream_eof()</a> and <a class="el" href="group__iostreams.html#ga1caba5c5fa7b5e1f1c3aff2863c34115" title="Get the error indicator for a stream.">jas_stream_error()</a> can be used.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>TODO/FIXME: count be size_t and return type should be ssize_t </dd></dl>

</div>
</div>
<a id="ga2e0b7559f669c12531ba34f7427d22c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2e0b7559f669c12531ba34f7427d22c0">&#9670;&nbsp;</a></span>jas_stream_isseekable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_ATTRIBUTE_PURE JAS_DLLEXPORT int jas_stream_isseekable </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determine if stream supports seeking. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream to query.</td></tr>
  </table>
  </dd>
</dl>
<p>The function is a predicate that tests if the underlying file object supports seek operations.</p>
<dl class="section return"><dt>Returns</dt><dd>If the underlying file object supports seek operations, a (strictly) positive value is returned. Otherwise, 0 is returned. </dd></dl>

</div>
</div>
<a id="ga9b5a1bdfc697f866ec4c4663aec57b82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9b5a1bdfc697f866ec4c4663aec57b82">&#9670;&nbsp;</a></span>jas_stream_length()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_ATTRIBUTE_PURE JAS_DLLEXPORT long jas_stream_length </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the size of the file associated with the specified stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td></td></tr>
  </table>
  </dd>
</dl>
<p>This function queries the size (i.e., length) of the underlying file object associated with the specified stream. The specified stream must be seekable.</p>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the size of the stream is returned. If an error occurs, a negative value is returned.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>TODO/FIXME: the return type should be ssize_t? </dd></dl>

</div>
</div>
<a id="ga601a0c50700e1af5c00c5e28c432db5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga601a0c50700e1af5c00c5e28c432db5f">&#9670;&nbsp;</a></span>jas_stream_memopen()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT jas_stream_t* jas_stream_memopen </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>buffer_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Open a memory buffer as a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buffer</td><td>A pointer to the buffer to be used to store stream data. </td></tr>
    <tr><td class="paramname">buffer_size</td><td>The size of the buffer.</td></tr>
  </table>
  </dd>
</dl>
<ul>
<li>
If buffer is 0 and buffer_size &gt; 0: a buffer is dynamically allocated with size buffer_size and this buffer is not growable. </li>
<li>
If buffer is 0 and buffer_size is 0: a buffer is dynamically allocated whose size will automatically grow to accommodate the amount of data written. </li>
<li>
If buffer is not 0: buffer_size (which, in this case, is not currently allowed to be zero) is the size of the (nongrowable) buffer pointed to by buffer. </li>
</ul>
<dl class="section warning"><dt>Warning</dt><dd>TODO/FIXME: The type of the buffer_size parameter will be changed to size_t in the future.</dd>
<dd>
TODO/FIXME: In a later release, this function will be changed to have the same prototype as jas_stream_memopen2, at which point jas_stream_memopen2 will be removed. </dd></dl>

</div>
</div>
<a id="gac27c7c81802a210f30152e1fc318553a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac27c7c81802a210f30152e1fc318553a">&#9670;&nbsp;</a></span>jas_stream_memopen2()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT jas_stream_t* jas_stream_memopen2 </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>buffer_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section warning"><dt>Warning</dt><dd>This function will be renamed jas_stream_memopen in a future release. Do not use this function. </dd></dl>

</div>
</div>
<a id="ga037fde03d888ea04f904f570cb1cf790"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga037fde03d888ea04f904f570cb1cf790">&#9670;&nbsp;</a></span>jas_stream_pad()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT int jas_stream_pad </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write a fill character multiple times to a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream to which to write. </td></tr>
    <tr><td class="paramname">count</td><td>The number of times to write the fill character to the stream. </td></tr>
    <tr><td class="paramname">value</td><td>The fill character.</td></tr>
  </table>
  </dd>
</dl>
<p>This function writes the given fill character to a stream a specified number of times. If a count of zero is specified, the function should have no effect.</p>
<dl class="section return"><dt>Returns</dt><dd>The number of times the fill character was written to the stream is returned. If this value is less than the specified count, an error must have occurred.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000006">Todo:</a></b></dt><dd>TODO: should the count be size_t; return type maybe size_t? </dd></dl>

</div>
</div>
<a id="ga09ca7376fabdc56c5d057e199df560f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga09ca7376fabdc56c5d057e199df560f5">&#9670;&nbsp;</a></span>jas_stream_peek()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT unsigned jas_stream_peek </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Attempt to retrieve one or more pending characters of input from a stream into a buffer without actually removing the characters from the stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream from which to retrieve pending input. </td></tr>
    <tr><td class="paramname">buffer</td><td>A pointer to the start of the buffer. </td></tr>
    <tr><td class="paramname">count</td><td>A count of how many characters to retrieve.</td></tr>
  </table>
  </dd>
</dl>
<p>The extent to which one can peek into the stream is limited. Therefore, this function can fail if count is sufficiently large.</p>
<dl class="section return"><dt>Returns</dt><dd>Returns the number of bytes copied to the given buffer, or 0 on error or EOF.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>TODO/FIXME: peeking at EOF should be distinguishable from an I/O error </dd></dl>

</div>
</div>
<a id="ga3950db78bc0da64b78893429b36ba160"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3950db78bc0da64b78893429b36ba160">&#9670;&nbsp;</a></span>jas_stream_printf()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT int jas_stream_printf </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write formatted output to a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream to which to write output. </td></tr>
    <tr><td class="paramname">format</td><td>A pointer to a format string similar to the printf function in the C standard library.</td></tr>
  </table>
  </dd>
</dl>
<p>The function prints the information associated with the format string to the specified stream.</p>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the number of characters output to the stream is returned. If an error is encountered, a negative value is returned.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>I think that the return type of int is okay here. It is consistent with printf and friends. </dd></dl>

</div>
</div>
<a id="ga455840be61c2d55ffe1f12e98c0a7f5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga455840be61c2d55ffe1f12e98c0a7f5d">&#9670;&nbsp;</a></span>jas_stream_puts()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT int jas_stream_puts </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write a string to a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream to which the string should be written. </td></tr>
    <tr><td class="paramname">s</td><td>A pointer to a null-terminated string for output.</td></tr>
  </table>
  </dd>
</dl>
<p>The null character is not output.</p>
<dl class="section return"><dt>Returns</dt><dd>Upon success, a nonnegative value is returned. Upon failure, a negative value is returned. </dd></dl>

</div>
</div>
<a id="gad919fe0674bc4bbf45a3aef2d82525d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad919fe0674bc4bbf45a3aef2d82525d4">&#9670;&nbsp;</a></span>jas_stream_read()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT unsigned jas_stream_read </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read characters from a stream into a buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream from which to read data. </td></tr>
    <tr><td class="paramname">buffer</td><td>A pointer to the start of the buffer. </td></tr>
    <tr><td class="paramname">count</td><td>A count of the number of characters to read (nominally).</td></tr>
  </table>
  </dd>
</dl>
<p>If <code>count</code> is zero, the function has no effect (and therefore cannot fail). Otherwise, the function attempts to read <code>count</code> characters from the stream <code>stream</code> into the buffer starting at <code>buffer</code>. The number of characters read can be less than <code>count</code>, due to end-of-file (EOF) or an I/O error.</p>
<dl class="section return"><dt>Returns</dt><dd>The number of characters read is returned. In the case that the number of characters read is less than <code>count</code>, <a class="el" href="group__iostreams.html#ga132e4d01a8e0157619bf793203f0e1d5" title="Get the EOF indicator for a stream.">jas_stream_eof()</a> and/or <a class="el" href="group__iostreams.html#ga1caba5c5fa7b5e1f1c3aff2863c34115" title="Get the error indicator for a stream.">jas_stream_error()</a> must be used to distinguish between: <ol>
<li>
a failure due to an I/O error </li>
<li>
a failure due to the read/write limit being exceeded </li>
<li>
EOF. </li>
</ol>
TODO/CHECK: can items 1 and 2 be distinguished currently?</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>TODO/FIXME/CHECK: jas_stream_error should be true if RWLIMIT exceeded? or need a jas_stream_rwlimit predicate?</dd>
<dd>
TODO/FIXME: In the future, the type of the count parameter and the return type will be changed to size_t. </dd></dl>

</div>
</div>
<a id="gaed13edeb5bb822c61ee907a899a70c45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaed13edeb5bb822c61ee907a899a70c45">&#9670;&nbsp;</a></span>jas_stream_rewind()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT int jas_stream_rewind </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Seek to the beginning of a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream whose position is to be set.</td></tr>
  </table>
  </dd>
</dl>
<p>The stream position is set to the start of the stream. This function is equivalent to returning the value of jas_stream_seek(stream, 0, SEEK_SET). </p><dl class="section return"><dt>Returns</dt><dd>Upon success, the new stream position is returned. Otherwise, a negative value is returned. </dd></dl>

</div>
</div>
<a id="ga0f563c74ee30deb02d359353cbbe9aaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0f563c74ee30deb02d359353cbbe9aaf">&#9670;&nbsp;</a></span>jas_stream_seek()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT long jas_stream_seek </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>origin</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the current position within the stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream for which to set the current position. </td></tr>
    <tr><td class="paramname">offset</td><td>The new position for the stream. </td></tr>
    <tr><td class="paramname">origin</td><td>The origin to which this new position is relative.</td></tr>
  </table>
  </dd>
</dl>
<p>The origin can be SEEK_CUR, SEEK_SET, or SEEK_END in a similar fashion as the fseek function in the C standard library (and the lseek function in POSIX).</p>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the new stream position is returned. Upon failure, a negative value is returned. </dd></dl>

</div>
</div>
<a id="gaebe2e860f79cb6771fe09bc0bbc67e6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaebe2e860f79cb6771fe09bc0bbc67e6b">&#9670;&nbsp;</a></span>jas_stream_setrwcount()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT long jas_stream_setrwcount </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>rw_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the read/write count for a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream whose read/write count is to be set. </td></tr>
    <tr><td class="paramname">rw_count</td><td>The new value for the read/write count. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The old value of the read/write count is returned. This operation cannot fail. </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>TODO/FIXME: Should this macro evaluate to void? </dd></dl>

</div>
</div>
<a id="gab94e4ab4be0b54d9f0b0c79448e43244"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab94e4ab4be0b54d9f0b0c79448e43244">&#9670;&nbsp;</a></span>jas_stream_setrwlimit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT long jas_stream_setrwlimit </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>rwlimit</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the read/write limit for a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream whose read/write limit is to be set. </td></tr>
    <tr><td class="paramname">rwlimit</td><td>The new value for the read/write limit.</td></tr>
  </table>
  </dd>
</dl>
<p>A negative read/write limit is treated as if it were infinity (i.e., there is no read/write limit).</p>
<dl class="section return"><dt>Returns</dt><dd>The old read/write limit is returned. </dd></dl>

</div>
</div>
<a id="ga2d61c716424db938ed78463da4fde6ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2d61c716424db938ed78463da4fde6ea">&#9670;&nbsp;</a></span>jas_stream_tell()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_ATTRIBUTE_PURE JAS_DLLEXPORT long jas_stream_tell </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the current position within the stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream whose current position is to be queried.</td></tr>
  </table>
  </dd>
</dl>
<p>The current position of the stream is returned.</p>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the current stream position is returned. If an error is encountered, a negative value is returned. </dd></dl>

</div>
</div>
<a id="ga316068f752d4f273d9bf31ed7e77b2e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga316068f752d4f273d9bf31ed7e77b2e4">&#9670;&nbsp;</a></span>jas_stream_tmpfile()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT jas_stream_t* jas_stream_tmpfile </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Open a temporary file as a stream. </p>
<p>A temporary file is created and opened as a stream. The temporary file is deleted when closed via <a class="el" href="group__iostreams.html#gad513dc45da8bcb4bb5dc4d6dbe1e9a10" title="Close a stream.">jas_stream_close()</a>. Some operating systems provide a mechanism for ensuring that a file is removed when closed. Such functionality may be used by the implementation when available.</p>
<dl class="section return"><dt>Returns</dt><dd>Upon success, a pointer to the opened stream is returned. Otherwise, a null pointer is returned. </dd></dl>

</div>
</div>
<a id="ga3b6de22cb55a945466b6dd6c88b1a0f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3b6de22cb55a945466b6dd6c88b1a0f0">&#9670;&nbsp;</a></span>jas_stream_ungetc()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT int jas_stream_ungetc </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Put a character back on a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream to which the character should be put back. </td></tr>
    <tr><td class="paramname">c</td><td>The character to put back.</td></tr>
  </table>
  </dd>
</dl>
<p>The character <code>c</code> (which was presumably read previously from the stream <code>stream</code>) is put back on the stream (as if it had not yet been read). In other words, this function undoes the effect of <a class="el" href="group__iostreams.html#ga4f9abec75332916849eaadbeb465c54e" title="jas_stream_getc Read a character from a stream.">jas_stream_getc()</a>. It is unspecified what happens if the character put back was not the one originally read. The number of characters that can be pushed back onto the stream for subsequent reading is limited. Trying to push back too many characters on a stream will result in an error. The approximate limit is given by the value of JAS_STREAM_MAXPUTBACK.</p>
<dl class="section return"><dt>Returns</dt><dd>Upon success, zero is returned. If the specified character cannot be pushed back, a negative value is returned. </dd></dl>

</div>
</div>
<a id="ga94b873a33f3f7f0391517b491fd16a0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga94b873a33f3f7f0391517b491fd16a0f">&#9670;&nbsp;</a></span>jas_stream_write()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">JAS_DLLEXPORT unsigned jas_stream_write </td>
          <td>(</td>
          <td class="paramtype">jas_stream_t *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write characters from a buffer to a stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>A pointer to the stream to which to write data. </td></tr>
    <tr><td class="paramname">buffer</td><td>A pointer to the start of the buffer. </td></tr>
    <tr><td class="paramname">count</td><td>A count of the number of characters to write.</td></tr>
  </table>
  </dd>
</dl>
<p>If <code>count</code> is zero, the function has no effect (and therefore cannot fail). Otherwise, the function will attempt to write <code>count</code> characters from the buffer starting at <code>buffer</code> to the stream <code>stream</code>. The number of characters written can be less than <code>count</code> due to an I/O error or the read/write limit being exceeded.</p>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the number of characters successfully written is returned. If an error occurs, the value returned will be less than <code>count</code>. The <a class="el" href="group__iostreams.html#ga1caba5c5fa7b5e1f1c3aff2863c34115" title="Get the error indicator for a stream.">jas_stream_error()</a> and jas_stream_rwlimit() function (TODO/CHECK: the latter of which does not currently exist?) can be used to distinguish between: <ol>
<li>
failure due to an I/O error </li>
<li>
failure due to the read/write limit being exceeded </li>
</ol>
</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>TODO/FIXME: The type of the count parameter should be size_t. The return type should be size_t. </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>