os/libc/stdio_8c.html

814 lines
36 KiB
HTML

<!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.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyOS Libc: libc/stdio.c File Reference</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>
<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>
<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">MyOS Libc
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<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','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</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('stdio_8c.html',''); initResizable(); });
/* @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="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">stdio.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="stdio_8h_source.html">stdio.h</a>&gt;</code><br />
<code>#include &lt;serdes.h&gt;</code><br />
<code>#include &lt;rpc.h&gt;</code><br />
<code>#include &lt;<a class="el" href="stdlib_8h_source.html">stdlib.h</a>&gt;</code><br />
<code>#include &lt;limits.h&gt;</code><br />
<code>#include &lt;<a class="el" href="string_8h_source.html">string.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="dbg_8h_source.html">dbg.h</a>&gt;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ace3cecd207fe69a092fd6739d7c6fe26"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#ace3cecd207fe69a092fd6739d7c6fe26">__stdio_init</a> ()</td></tr>
<tr class="separator:ace3cecd207fe69a092fd6739d7c6fe26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a921c423556bf05929d2ad1def1bb8ce7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structFILE.html">FILE</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#a921c423556bf05929d2ad1def1bb8ce7">fopen</a> (char *filename, char *mode)</td></tr>
<tr class="separator:a921c423556bf05929d2ad1def1bb8ce7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38f980218f04ebdddcdcd1b77e1cf6b1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#a38f980218f04ebdddcdcd1b77e1cf6b1">putc</a> (int c, <a class="el" href="structFILE.html">FILE</a> *stream)</td></tr>
<tr class="separator:a38f980218f04ebdddcdcd1b77e1cf6b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe6299d5823dd023e610aaa619735a3f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#abe6299d5823dd023e610aaa619735a3f">fputc</a> (int c, <a class="el" href="structFILE.html">FILE</a> *stream)</td></tr>
<tr class="separator:abe6299d5823dd023e610aaa619735a3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5a0ea2c21a23a380b7c30fe35fa9456"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#ad5a0ea2c21a23a380b7c30fe35fa9456">getc</a> (<a class="el" href="structFILE.html">FILE</a> *stream)</td></tr>
<tr class="separator:ad5a0ea2c21a23a380b7c30fe35fa9456"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab11a990e4f8863a1e7736e3c1d430092"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#ab11a990e4f8863a1e7736e3c1d430092">fgetc</a> (<a class="el" href="structFILE.html">FILE</a> *stream)</td></tr>
<tr class="separator:ab11a990e4f8863a1e7736e3c1d430092"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab85b30d68ce9d9e0475e0f51bf610b1"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#aab85b30d68ce9d9e0475e0f51bf610b1">gets</a> (char *s)</td></tr>
<tr class="separator:aab85b30d68ce9d9e0475e0f51bf610b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac513655eeb3fe77165663ab2cf7483b0"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#ac513655eeb3fe77165663ab2cf7483b0">fgets</a> (char *str, int count, <a class="el" href="structFILE.html">FILE</a> *stream)</td></tr>
<tr class="separator:ac513655eeb3fe77165663ab2cf7483b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fb733036d2387ccd7c14f166a97f814"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#a3fb733036d2387ccd7c14f166a97f814">fread</a> (void *buffer_ptr, size_t size, size_t count, <a class="el" href="structFILE.html">FILE</a> *stream)</td></tr>
<tr class="separator:a3fb733036d2387ccd7c14f166a97f814"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad41876f99f190c7488e64ef39c50a23f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#ad41876f99f190c7488e64ef39c50a23f">puts</a> (const char *s)</td></tr>
<tr class="separator:ad41876f99f190c7488e64ef39c50a23f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68236e664c1f0da049b25fba1c1695f6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#a68236e664c1f0da049b25fba1c1695f6">fputs</a> (const char *s, <a class="el" href="structFILE.html">FILE</a> *stream)</td></tr>
<tr class="separator:a68236e664c1f0da049b25fba1c1695f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6539f6bd21e2d253cac3231cb1fb98b8"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#a6539f6bd21e2d253cac3231cb1fb98b8">fwrite</a> (void *buffer_ptr, size_t size, size_t count, <a class="el" href="structFILE.html">FILE</a> *stream)</td></tr>
<tr class="separator:a6539f6bd21e2d253cac3231cb1fb98b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94b40743c479bf76b0198ad06b434ae4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#a94b40743c479bf76b0198ad06b434ae4">register_fs</a> (const char *name, pid_t pid)</td></tr>
<tr class="separator:a94b40743c479bf76b0198ad06b434ae4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88a6bfe0c7810364842fd161bb4319b5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#a88a6bfe0c7810364842fd161bb4319b5">mount</a> (char *file, char *type, char *path)</td></tr>
<tr class="separator:a88a6bfe0c7810364842fd161bb4319b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a238ba3ae728d117984e087d9db33cd13"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#a238ba3ae728d117984e087d9db33cd13">vfprintf</a> (<a class="el" href="structFILE.html">FILE</a> *stream, const char *format, va_list arg)</td></tr>
<tr class="separator:a238ba3ae728d117984e087d9db33cd13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9291335f34e874c8431285d705bc3aa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#ad9291335f34e874c8431285d705bc3aa">fprintf</a> (<a class="el" href="structFILE.html">FILE</a> *stream, const char *format,...)</td></tr>
<tr class="separator:ad9291335f34e874c8431285d705bc3aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98631211a4a8aee62f572375d5b637be"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#a98631211a4a8aee62f572375d5b637be">printf</a> (const char *format,...)</td></tr>
<tr class="separator:a98631211a4a8aee62f572375d5b637be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82b8f8886100499da342a39a7e1d70dd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#a82b8f8886100499da342a39a7e1d70dd">fseek</a> (<a class="el" href="structFILE.html">FILE</a> *stream, long offset, int origin)</td></tr>
<tr class="separator:a82b8f8886100499da342a39a7e1d70dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:acab9c1fe2a80b10e01858bda28a04244"><td class="memItemLeft" align="right" valign="top"><a id="acab9c1fe2a80b10e01858bda28a04244"></a>
<a class="el" href="structFILE.html">FILE</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#acab9c1fe2a80b10e01858bda28a04244">stdin</a> =NULL</td></tr>
<tr class="memdesc:acab9c1fe2a80b10e01858bda28a04244"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard input. <br /></td></tr>
<tr class="separator:acab9c1fe2a80b10e01858bda28a04244"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac80f4484175bf6c48d7b7ca4e9897ae6"><td class="memItemLeft" align="right" valign="top"><a id="ac80f4484175bf6c48d7b7ca4e9897ae6"></a>
<a class="el" href="structFILE.html">FILE</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#ac80f4484175bf6c48d7b7ca4e9897ae6">stdout</a> =NULL</td></tr>
<tr class="memdesc:ac80f4484175bf6c48d7b7ca4e9897ae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard output. <br /></td></tr>
<tr class="separator:ac80f4484175bf6c48d7b7ca4e9897ae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9e47c346a25e2e7edd2c9b4ca5d0262"><td class="memItemLeft" align="right" valign="top"><a id="ac9e47c346a25e2e7edd2c9b4ca5d0262"></a>
<a class="el" href="structFILE.html">FILE</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stdio_8c.html#ac9e47c346a25e2e7edd2c9b4ca5d0262">stderr</a> =NULL</td></tr>
<tr class="memdesc:ac9e47c346a25e2e7edd2c9b4ca5d0262"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard error. <br /></td></tr>
<tr class="separator:ac9e47c346a25e2e7edd2c9b4ca5d0262"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="ace3cecd207fe69a092fd6739d7c6fe26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace3cecd207fe69a092fd6739d7c6fe26">&#9670;&nbsp;</a></span>__stdio_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __stdio_init </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize stdio. Must not be called by user code. </p>
</div>
</div>
<a id="ab11a990e4f8863a1e7736e3c1d430092"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab11a990e4f8863a1e7736e3c1d430092">&#9670;&nbsp;</a></span>fgetc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int fgetc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFILE.html">FILE</a> *&#160;</td>
<td class="paramname"><em>stream</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a character from a file </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">stream</td><td>The file to read from </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the read character, or EOF if the read fails </dd></dl>
</div>
</div>
<a id="ac513655eeb3fe77165663ab2cf7483b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac513655eeb3fe77165663ab2cf7483b0">&#9670;&nbsp;</a></span>fgets()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* fgets </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>str</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"><a class="el" href="structFILE.html">FILE</a> *&#160;</td>
<td class="paramname"><em>stream</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a newline delimeted string from a file </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>The buffer to read into </td></tr>
<tr><td class="paramname">count</td><td>The maximum size of the string to read </td></tr>
<tr><td class="paramname">stream</td><td>The file to read from </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the buffer </dd></dl>
</div>
</div>
<a id="a921c423556bf05929d2ad1def1bb8ce7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a921c423556bf05929d2ad1def1bb8ce7">&#9670;&nbsp;</a></span>fopen()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structFILE.html">FILE</a>* fopen </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">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>Opens a file with the specified mode </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>The path to the file to open </td></tr>
<tr><td class="paramname">mode</td><td>The mode to open the file with (r,w,a,r+,w+,a+) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>NULL if the file could not be opened, or a pointer to a <a class="el" href="structFILE.html">FILE</a> struct if the opening was sucessful. </dd></dl>
</div>
</div>
<a id="ad9291335f34e874c8431285d705bc3aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9291335f34e874c8431285d705bc3aa">&#9670;&nbsp;</a></span>fprintf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int fprintf </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFILE.html">FILE</a> *&#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>Format a string and writte it to a file </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">stream</td><td>The fike to write to </td></tr>
<tr><td class="paramname">format</td><td>The format string </td></tr>
<tr><td class="paramname">...</td><td>The arguments for the format string </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of bytes written </dd></dl>
</div>
</div>
<a id="abe6299d5823dd023e610aaa619735a3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe6299d5823dd023e610aaa619735a3f">&#9670;&nbsp;</a></span>fputc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int fputc </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFILE.html">FILE</a> *&#160;</td>
<td class="paramname"><em>stream</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes a character to a file </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">c</td><td>The character to write </td></tr>
<tr><td class="paramname">stream</td><td>The stream to write to </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the written character, or EOF on failure </dd></dl>
</div>
</div>
<a id="a68236e664c1f0da049b25fba1c1695f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68236e664c1f0da049b25fba1c1695f6">&#9670;&nbsp;</a></span>fputs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int fputs </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFILE.html">FILE</a> *&#160;</td>
<td class="paramname"><em>stream</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes a string to a file </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>The string to write </td></tr>
<tr><td class="paramname">stream</td><td>The file to write to </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, EOF on failure </dd></dl>
</div>
</div>
<a id="a3fb733036d2387ccd7c14f166a97f814"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3fb733036d2387ccd7c14f166a97f814">&#9670;&nbsp;</a></span>fread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t fread </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>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFILE.html">FILE</a> *&#160;</td>
<td class="paramname"><em>stream</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reads from a file </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>The buffer to read into </td></tr>
<tr><td class="paramname">size</td><td>The size of each elemnt to read </td></tr>
<tr><td class="paramname">count</td><td>The number of elements to read </td></tr>
<tr><td class="paramname">stream</td><td>The file to read from </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of bytes read, or 0 on failure </dd></dl>
</div>
</div>
<a id="a82b8f8886100499da342a39a7e1d70dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82b8f8886100499da342a39a7e1d70dd">&#9670;&nbsp;</a></span>fseek()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int fseek </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFILE.html">FILE</a> *&#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>Seeks to a position in a file </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">stream</td><td>The file to seek in </td></tr>
<tr><td class="paramname">offset</td><td>The offset to seek to </td></tr>
<tr><td class="paramname">origin</td><td>The origin of seeking (SEEK_CUR,SEEK_END,SEEK_SET) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, -1 on failure </dd></dl>
</div>
</div>
<a id="a6539f6bd21e2d253cac3231cb1fb98b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6539f6bd21e2d253cac3231cb1fb98b8">&#9670;&nbsp;</a></span>fwrite()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t fwrite </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>buffer_ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFILE.html">FILE</a> *&#160;</td>
<td class="paramname"><em>stream</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes to a file </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buffer_ptr</td><td>The buffer to write </td></tr>
<tr><td class="paramname">size</td><td>The size of each elemnt to write </td></tr>
<tr><td class="paramname">count</td><td>The number of elements to write </td></tr>
<tr><td class="paramname">stream</td><td>The file to write to </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of bytes written, or 0 on failure </dd></dl>
</div>
</div>
<a id="ad5a0ea2c21a23a380b7c30fe35fa9456"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5a0ea2c21a23a380b7c30fe35fa9456">&#9670;&nbsp;</a></span>getc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int getc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFILE.html">FILE</a> *&#160;</td>
<td class="paramname"><em>stream</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a character from a file </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">stream</td><td>The file to read from </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the read character, or EOF if the read fails </dd></dl>
</div>
</div>
<a id="aab85b30d68ce9d9e0475e0f51bf610b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab85b30d68ce9d9e0475e0f51bf610b1">&#9670;&nbsp;</a></span>gets()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* gets </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>str</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a newline delimeted string from stdin </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">str</td><td>The buffer to read into </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the buffer </dd></dl>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Gets is unsafe and vulnerable to a buffer overflow, as there is no bounds checking on the buffer. </dd></dl>
</div>
</div>
<a id="a88a6bfe0c7810364842fd161bb4319b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88a6bfe0c7810364842fd161bb4319b5">&#9670;&nbsp;</a></span>mount()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int mount </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>path</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Mounts a filesystem </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">file</td><td>The file to mount </td></tr>
<tr><td class="paramname">type</td><td>The type of the filesystem to mount </td></tr>
<tr><td class="paramname">path</td><td>The path to mount the filesytem at </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, 1 on failure </dd></dl>
</div>
</div>
<a id="a98631211a4a8aee62f572375d5b637be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98631211a4a8aee62f572375d5b637be">&#9670;&nbsp;</a></span>printf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int printf </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>Format a string and write it to stdout </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">format</td><td>The format string </td></tr>
<tr><td class="paramname">...</td><td>The arguments for the format string </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of bytes written </dd></dl>
</div>
</div>
<a id="a38f980218f04ebdddcdcd1b77e1cf6b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38f980218f04ebdddcdcd1b77e1cf6b1">&#9670;&nbsp;</a></span>putc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int putc </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structFILE.html">FILE</a> *&#160;</td>
<td class="paramname"><em>stream</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes a character to a file </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">c</td><td>The character to write </td></tr>
<tr><td class="paramname">stream</td><td>The stream to write to </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the written character, or EOF on failure </dd></dl>
</div>
</div>
<a id="ad41876f99f190c7488e64ef39c50a23f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad41876f99f190c7488e64ef39c50a23f">&#9670;&nbsp;</a></span>puts()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int puts </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes a string followed by a newline to stdin </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>The string to write </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, EOF on failure </dd></dl>
</div>
</div>
<a id="a94b40743c479bf76b0198ad06b434ae4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94b40743c479bf76b0198ad06b434ae4">&#9670;&nbsp;</a></span>register_fs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void register_fs </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">pid_t&#160;</td>
<td class="paramname"><em>pid</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Registers a file system type with the VFS </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>The name of the type to register </td></tr>
<tr><td class="paramname">pid</td><td>The PID of the filesytem driver </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a238ba3ae728d117984e087d9db33cd13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a238ba3ae728d117984e087d9db33cd13">&#9670;&nbsp;</a></span>vfprintf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int vfprintf </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structFILE.html">FILE</a> *&#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">va_list&#160;</td>
<td class="paramname"><em>arg</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Format a string and writte it to a file </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">stream</td><td>The fike to write to </td></tr>
<tr><td class="paramname">format</td><td>The format string </td></tr>
<tr><td class="paramname">arg</td><td>The arguments for the format string </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of bytes written </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="navelem"><a class="el" href="dir_fc1eb218ab426e5adb60367f98438da0.html">libc</a></li><li class="navelem"><a class="el" href="stdio_8c.html">stdio.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>