NAME
getc — get a byte
from a stream
SYNOPSIS
#include
<stdio.h>
int getc(FILE *stream);
DESCRIPTION
[CX] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of IEEE Std 1003.1-2001 (“POSIX.1”) defers to the ISO C standard.
The getc () function shall be 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-defined.
Since it may be implemented as a macro,
getc () may treat incorrectly a
stream argument with side effects. In particular,
getc (*
f ++) does not
necessarily work as expected. Therefore, use of this function should be
preceded by "#undef getc" in such
situations; fgetc(3) could also be used.
RATIONALE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
fgetc(3) , the Base Definitions volume of IEEE Std 1003.1-2001 (“POSIX.1”), <stdio.h>
CHANGE HISTORY
First released in Issue 1. Derived from Issue 1 of the SVID.
End of informative text. footer end