NAME

getc, getchar, fgetc - get character or word from a stream

SYNOPSIS

#include <stdio.h>

int getc( FILE *stream );
int getchar(void);
int fgetc( FILE *stream );
DESCRIPTION

getc() returns the next character (that is, byte) from the named input stream as an unsigned char converted to an int. It also moves the file pointer, if defined, ahead one character in getchar() is defined as getc(stdin). getc() and getchar() are macros.

fgetc() behaves like getc() , , but is a function rather than a macro. fgetc() runs more slowly than getc(), , but it takes less space per invocation and its name can be passed as an argument to a function.



RETURN VALUES

These functions return the constant EOF at end-of-file or upon an error and set the EOF or error indicator of stream, respectively. Because EOF is a valid integer, ferror() should be used to detect getw() errors.

SEE ALSO

fclose(), ferror(), fopen(), fread(), gets(), putc(), scanf(), ungetc()

NOTES

If the integer value returned by getc() , , getchar() , , fgetc() is stored into a character variable and then compared against the integer constant EOF, the comparison may never succeed, because sign-extension of a character on widening to integer is implementation dependent.

The macro version of getc() evaluates a stream argument more than once and may treat side effects incorrectly. In particular, getc(*f++) does not work sensibly. Use fgetc() instead.




< Copyright Rowebots Research Inc. and Multiprocessor Toolsmiths Inc. 1987-2008 >