blob: 6d98202b0c0029edd810c8c260885cbea854fc3c [file]
<html lang="en">
<head>
<title>putc - Untitled</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Untitled">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Stdio.html#Stdio" title="Stdio">
<link rel="prev" href="perror.html#perror" title="perror">
<link rel="next" href="putc_005funlocked.html#putc_005funlocked" title="putc_unlocked">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="putc"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="putc_005funlocked.html#putc_005funlocked">putc_unlocked</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="perror.html#perror">perror</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Stdio.html#Stdio">Stdio</a>
<hr>
</div>
<h3 class="section">4.44 <code>putc</code>&mdash;write a character (macro)</h3>
<p><a name="index-putc-246"></a><a name="index-g_t_005fputc_005fr-247"></a><strong>Synopsis</strong>
<pre class="example"> #include &lt;stdio.h&gt;
int putc(int <var>ch</var>, FILE *<var>fp</var>);
#include &lt;stdio.h&gt;
int _putc_r(struct _reent *<var>ptr</var>, int <var>ch</var>, FILE *<var>fp</var>);
</pre>
<p><strong>Description</strong><br>
<code>putc</code> is a macro, defined in <code>stdio.h</code>. <code>putc</code>
writes the argument <var>ch</var> to the file or stream identified by
<var>fp</var>, after converting it from an <code>int</code> to an <code>unsigned char</code>.
<p>If the file was opened with append mode (or if the stream cannot
support positioning), then the new character goes at the end of the
file or stream. Otherwise, the new character is written at the
current value of the position indicator, and the position indicator
advances by one.
<p>For a subroutine version of this macro, see <code>fputc</code>.
<p>The <code>_putc_r</code> function is simply the reentrant version of
<code>putc</code> that takes an additional reentrant structure argument: <var>ptr</var>.
<p><br>
<strong>Returns</strong><br>
If successful, <code>putc</code> returns its argument <var>ch</var>. If an error
intervenes, the result is <code>EOF</code>. You can use `<code>ferror(</code><var>fp</var><code>)</code>' to
query for errors.
<p><br>
<strong>Portability</strong><br>
ANSI C requires <code>putc</code>; it suggests, but does not require, that
<code>putc</code> be implemented as a macro. The standard explicitly permits
macro implementations of <code>putc</code> to use the <var>fp</var> argument more than once;
therefore, in a portable program, you should not use an expression
with side effects as this argument.
<p>Supporting OS subroutines required: <code>close</code>, <code>fstat</code>, <code>isatty</code>,
<code>lseek</code>, <code>read</code>, <code>sbrk</code>, <code>write</code>.
<p><br>
</body></html>