NAME
getc — get a byte
from a stream
SYNOPSIS
#include <stdio.h> int getc(FILE *stream);
DESCRIPTION
The getc() function is equivalent to fgetc(3) , except that if it is implemented as a macro it may evaluate stream more than once, so the argument should never be an expression with side effects.
RETURN VALUE
Refer to fgetc(3) .
ERRORS
Refer to fgetc(3) .
EXAMPLES
None.
APPLICATION USAGE
If the integer value returned by getc() is stored into a variable of type char and then compared against the integer constant EOF, the comparison may never succeed, because sign-extension of a variable of type char on widening to integer is implementation-dependent.
Because it may be implemented as a macro,
getc() may treat
incorrectly a
stream
argument with side effects. In particular, getc (*
f ++) will not
necessarily work as expected. Therefore, use of this function should be
preceded by "#undef getc" in such situations;
fgetc()
could also be used.
FUTURE DIRECTIONS
None.
SEE ALSO
DERIVATION
Derived from Issue 1 of the SVID.