You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
5.6KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. <title>fputc (The Red Hat newlib C Library)</title>
  7. <meta name="description" content="fputc (The Red Hat newlib C Library)">
  8. <meta name="keywords" content="fputc (The Red Hat newlib C Library)">
  9. <meta name="resource-type" content="document">
  10. <meta name="distribution" content="global">
  11. <meta name="Generator" content="makeinfo">
  12. <link href="index.html#Top" rel="start" title="Top">
  13. <link href="Document-Index.html#Document-Index" rel="index" title="Document Index">
  14. <link href="Document-Index.html#SEC_Contents" rel="contents" title="Table of Contents">
  15. <link href="Stdio.html#Stdio" rel="up" title="Stdio">
  16. <link href="fputs.html#fputs" rel="next" title="fputs">
  17. <link href="fpurge.html#fpurge" rel="prev" title="fpurge">
  18. <style type="text/css">
  19. <!--
  20. a.summary-letter {text-decoration: none}
  21. blockquote.indentedblock {margin-right: 0em}
  22. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  23. blockquote.smallquotation {font-size: smaller}
  24. div.display {margin-left: 3.2em}
  25. div.example {margin-left: 3.2em}
  26. div.lisp {margin-left: 3.2em}
  27. div.smalldisplay {margin-left: 3.2em}
  28. div.smallexample {margin-left: 3.2em}
  29. div.smalllisp {margin-left: 3.2em}
  30. kbd {font-style: oblique}
  31. pre.display {font-family: inherit}
  32. pre.format {font-family: inherit}
  33. pre.menu-comment {font-family: serif}
  34. pre.menu-preformatted {font-family: serif}
  35. pre.smalldisplay {font-family: inherit; font-size: smaller}
  36. pre.smallexample {font-size: smaller}
  37. pre.smallformat {font-family: inherit; font-size: smaller}
  38. pre.smalllisp {font-size: smaller}
  39. span.nolinebreak {white-space: nowrap}
  40. span.roman {font-family: initial; font-weight: normal}
  41. span.sansserif {font-family: sans-serif; font-weight: normal}
  42. ul.no-bullet {list-style: none}
  43. -->
  44. </style>
  45. </head>
  46. <body lang="en">
  47. <a name="fputc"></a>
  48. <div class="header">
  49. <p>
  50. Next: <a href="fputs.html#fputs" accesskey="n" rel="next">fputs</a>, Previous: <a href="fpurge.html#fpurge" accesskey="p" rel="prev">fpurge</a>, Up: <a href="Stdio.html#Stdio" accesskey="u" rel="up">Stdio</a> &nbsp; [<a href="Document-Index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Document-Index.html#Document-Index" title="Index" rel="index">Index</a>]</p>
  51. </div>
  52. <hr>
  53. <a name="fputc_002c-fputc_005funlocked_002d_002d_002dwrite-a-character-on-a-stream-or-file"></a>
  54. <h3 class="section">4.20 <code>fputc</code>, <code>fputc_unlocked</code>&mdash;write a character on a stream or file</h3>
  55. <a name="index-fputc"></a>
  56. <a name="index-fputc_005funlocked"></a>
  57. <a name="index-_005ffputc_005fr"></a>
  58. <a name="index-_005ffputc_005funlocked_005fr"></a>
  59. <p><strong>Synopsis</strong>
  60. </p><div class="example">
  61. <pre class="example">#include &lt;stdio.h&gt;
  62. int fputc(int <var>ch</var>, FILE *<var>fp</var>);
  63. #define _BSD_SOURCE
  64. #include &lt;stdio.h&gt;
  65. int fputc_unlocked(int <var>ch</var>, FILE *<var>fp</var>);
  66. #include &lt;stdio.h&gt;
  67. int _fputc_r(struct _rent *<var>ptr</var>, int <var>ch</var>, FILE *<var>fp</var>);
  68. #include &lt;stdio.h&gt;
  69. int _fputc_unlocked_r(struct _rent *<var>ptr</var>, int <var>ch</var>, FILE *<var>fp</var>);
  70. </pre></div>
  71. <p><strong>Description</strong><br>
  72. <code>fputc</code> converts the argument <var>ch</var> from an <code>int</code> to an
  73. <code>unsigned char</code>, then writes it to the file or stream identified by
  74. <var>fp</var>.
  75. </p>
  76. <p>If the file was opened with append mode (or if the stream cannot
  77. support positioning), then the new character goes at the end of the
  78. file or stream. Otherwise, the new character is written at the
  79. current value of the position indicator, and the position indicator
  80. oadvances by one.
  81. </p>
  82. <p>For a macro version of this function, see <code>putc</code>.
  83. </p>
  84. <p><code>fputc_unlocked</code> is a non-thread-safe version of <code>fputc</code>.
  85. <code>fputc_unlocked</code> may only safely be used within a scope
  86. protected by flockfile() (or ftrylockfile()) and funlockfile(). This
  87. function may safely be used in a multi-threaded program if and only
  88. if they are called while the invoking thread owns the (FILE *)
  89. object, as is the case after a successful call to the flockfile() or
  90. ftrylockfile() functions. If threads are disabled, then
  91. <code>fputc_unlocked</code> is equivalent to <code>fputc</code>.
  92. </p>
  93. <p>The <code>_fputc_r</code> and <code>_fputc_unlocked_r</code> functions are simply reentrant
  94. versions of the above that take an additional reentrant structure
  95. argument: <var>ptr</var>.
  96. </p>
  97. <br>
  98. <p><strong>Returns</strong><br>
  99. If successful, <code>fputc</code> returns its argument <var>ch</var>. If an error
  100. intervenes, the result is <code>EOF</code>. You can use &lsquo;<code>ferror(<var>fp</var>)</code>&rsquo; to
  101. query for errors.
  102. </p>
  103. <br>
  104. <p><strong>Portability</strong><br>
  105. <code>fputc</code> is required by ANSI C.
  106. </p>
  107. <p><code>fputc_unlocked</code> is a BSD extension also provided by GNU libc.
  108. </p>
  109. <p>Supporting OS subroutines required: <code>close</code>, <code>fstat</code>, <code>isatty</code>,
  110. <code>lseek</code>, <code>read</code>, <code>sbrk</code>, <code>write</code>.
  111. </p>
  112. <br>
  113. <hr>
  114. <div class="header">
  115. <p>
  116. Next: <a href="fputs.html#fputs" accesskey="n" rel="next">fputs</a>, Previous: <a href="fpurge.html#fpurge" accesskey="p" rel="prev">fpurge</a>, Up: <a href="Stdio.html#Stdio" accesskey="u" rel="up">Stdio</a> &nbsp; [<a href="Document-Index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Document-Index.html#Document-Index" title="Index" rel="index">Index</a>]</p>
  117. </div>
  118. </body>
  119. </html>