Next: getc_unlocked, Previous: fwrite, Up: Stdio
getc—read a character (macro) #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.