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

 NAME

getc - get a byte from a stream

 SYNOPSIS



#include <stdio.h>

int getc(FILE *stream);

 DESCRIPTION

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.

 RETURN VALUE

Refer to fgetc().

 ERRORS

Refer to fgetc().

 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

fgetc(), <stdio.h>.

DERIVATION

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 ]