The Open Group Base Specifications Issue 8
IEEE Std 1003.1-2024
Copyright © 2001-2024 The IEEE and The Open Group

NAME

getc — get a byte from a stream

SYNOPSIS

#include <stdio.h>

int getc(FILE *
stream);

DESCRIPTION

[CX] [Option Start] 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 POSIX.1-2024 defers to the ISO C standard. [Option End]

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

2.5 Standard I/O Streams, fgetc

XBD <stdio.h>

CHANGE HISTORY

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

Issue 7

POSIX.1-2008, Technical Corrigendum 1, XSH/TC1-2008/0231 [14] is applied.

End of informative text.

 

return to top of page

UNIX® is a registered Trademark of The Open Group.
POSIX™ is a Trademark of The IEEE.
Copyright © 2001-2024 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]