1<html lang="en"> 2<head> 3<title>putc - Untitled</title> 4<meta http-equiv="Content-Type" content="text/html"> 5<meta name="description" content="Untitled"> 6<meta name="generator" content="makeinfo 4.13"> 7<link title="Top" rel="start" href="index.html#Top"> 8<link rel="up" href="Stdio.html#Stdio" title="Stdio"> 9<link rel="prev" href="perror.html#perror" title="perror"> 10<link rel="next" href="putc_005funlocked.html#putc_005funlocked" title="putc_unlocked"> 11<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> 12<meta http-equiv="Content-Style-Type" content="text/css"> 13<style type="text/css"><!-- 14 pre.display { font-family:inherit } 15 pre.format { font-family:inherit } 16 pre.smalldisplay { font-family:inherit; font-size:smaller } 17 pre.smallformat { font-family:inherit; font-size:smaller } 18 pre.smallexample { font-size:smaller } 19 pre.smalllisp { font-size:smaller } 20 span.sc { font-variant:small-caps } 21 span.roman { font-family:serif; font-weight:normal; } 22 span.sansserif { font-family:sans-serif; font-weight:normal; } 23--></style> 24<link rel="stylesheet" type="text/css" href="../cs.css"> 25</head> 26<body> 27<div class="node"> 28<a name="putc"></a> 29<p> 30Next: <a rel="next" accesskey="n" href="putc_005funlocked.html#putc_005funlocked">putc_unlocked</a>, 31Previous: <a rel="previous" accesskey="p" href="perror.html#perror">perror</a>, 32Up: <a rel="up" accesskey="u" href="Stdio.html#Stdio">Stdio</a> 33<hr> 34</div> 35 36<h3 class="section">4.44 <code>putc</code>—write a character (macro)</h3> 37 38<p><a name="index-putc-246"></a><a name="index-g_t_005fputc_005fr-247"></a><strong>Synopsis</strong> 39<pre class="example"> #include <stdio.h> 40 int putc(int <var>ch</var>, FILE *<var>fp</var>); 41 42 #include <stdio.h> 43 int _putc_r(struct _reent *<var>ptr</var>, int <var>ch</var>, FILE *<var>fp</var>); 44 45</pre> 46 <p><strong>Description</strong><br> 47<code>putc</code> is a macro, defined in <code>stdio.h</code>. <code>putc</code> 48writes the argument <var>ch</var> to the file or stream identified by 49<var>fp</var>, after converting it from an <code>int</code> to an <code>unsigned char</code>. 50 51 <p>If the file was opened with append mode (or if the stream cannot 52support positioning), then the new character goes at the end of the 53file or stream. Otherwise, the new character is written at the 54current value of the position indicator, and the position indicator 55advances by one. 56 57 <p>For a subroutine version of this macro, see <code>fputc</code>. 58 59 <p>The <code>_putc_r</code> function is simply the reentrant version of 60<code>putc</code> that takes an additional reentrant structure argument: <var>ptr</var>. 61 62 <p><br> 63<strong>Returns</strong><br> 64If successful, <code>putc</code> returns its argument <var>ch</var>. If an error 65intervenes, the result is <code>EOF</code>. You can use `<code>ferror(</code><var>fp</var><code>)</code>' to 66query for errors. 67 68 <p><br> 69<strong>Portability</strong><br> 70ANSI C requires <code>putc</code>; it suggests, but does not require, that 71<code>putc</code> be implemented as a macro. The standard explicitly permits 72macro implementations of <code>putc</code> to use the <var>fp</var> argument more than once; 73therefore, in a portable program, you should not use an expression 74with side effects as this argument. 75 76 <p>Supporting OS subroutines required: <code>close</code>, <code>fstat</code>, <code>isatty</code>, 77<code>lseek</code>, <code>read</code>, <code>sbrk</code>, <code>write</code>. 78 79 <p><br> 80 81 </body></html> 82 83