The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### 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 defers to the ISO C standard.

> The getc() function shall be 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().

The following sections are informative.

#### 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() could also be used.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> fgetc(), the Base Definitions volume of IEEE Std 1003.1-2001, <stdio.h>

#### CHANGE HISTORY

> First released in Issue 1. Derived from Issue 1 of the SVID.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]