The Single UNIX ® Specification, Version 2
Copyright © 1997 The Open Group


getc - get a byte from a stream


#include <stdio.h>

int getc(FILE *stream);


The getc() function is equivalent to fgetc(), 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.


Refer to fgetc().


Refer to fgetc().




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.




fgetc(), <stdio.h>.


Derived from Issue 1 of the SVID.

UNIX ® is a registered Trademark of The Open Group.
Copyright © 1997 The Open Group
[ Main Index | XSH | XCU | XBD | XCURSES | XNS ]