Next: getc_unlocked, Previous: fwrite, Up: Stdio [Contents][Index]
getc
—read a character (macro)Synopsis
#include <stdio.h> int getc(FILE *fp); #include <stdio.h> int _getc_r(struct _reent *ptr, FILE *fp);
Description
getc
is a macro, defined in stdio.h
. You can use getc
to get the next single character from the file or stream
identified by fp. As a side effect, getc
advances the file’s
current position indicator.
For a subroutine version of this macro, see fgetc
.
The _getc_r
function is simply the reentrant version of getc
which passes an additional reentrancy structure pointer argument: ptr.
Returns
The next character (read as an unsigned char
, and cast to
int
), unless there is no more data, or the host system reports a
read error; in either of these situations, getc
returns EOF
.
You can distinguish the two situations that cause an EOF
result by
using the ferror
and feof
functions.
Portability
ANSI C requires getc
; it suggests, but does not require, that
getc
be implemented as a macro. The standard explicitly permits
macro implementations of getc
to use the argument more than once;
therefore, in a portable program, you should not use an expression
with side effects as the getc
argument.
Supporting OS subroutines required: close
, fstat
, isatty
,
lseek
, read
, sbrk
, write
.