Next: putc_unlocked, Previous: perror, Up: Stdio [Contents][Index]
putc
—write a character (macro)Synopsis
#include <stdio.h> int putc(int ch, FILE *fp); #include <stdio.h> int _putc_r(struct _reent *ptr, int ch, FILE *fp);
Description
putc
is a macro, defined in stdio.h
. putc
writes the argument ch to the file or stream identified by
fp, after converting it from an int
to an unsigned char
.
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.
For a subroutine version of this macro, see fputc
.
The _putc_r
function is simply the reentrant version of
putc
that takes an additional reentrant structure argument: ptr.
Returns
If successful, putc
returns its argument ch. If an error
intervenes, the result is EOF
. You can use ‘ferror(fp)
’ to
query for errors.
Portability
ANSI C requires putc
; it suggests, but does not require, that
putc
be implemented as a macro. The standard explicitly permits
macro implementations of putc
to use the fp argument more than once;
therefore, in a portable program, you should not use an expression
with side effects as this argument.
Supporting OS subroutines required: close
, fstat
, isatty
,
lseek
, read
, sbrk
, write
.