GETC(3S)

NAME
getc, getchar, fgetc, getw - get character or word from stream

SYNOPSIS
#include <stdio.h>

int getc(stream)
FILE *stream;

int getchar()

int fgetc(stream)
FILE *stream;

int getw(stream)
FILE *stream;

DESCRIPTION
Getc returns the next character from the named input stream.

Getchar() is identical to getc(stdin).

Fgetc behaves like getc, but is a genuine function, not a macro; it may be used to save object text.

Getw returns the next word (in a 32-bit integer on the BALANCE and SYMMETRY Series) from the named input stream. It returns the constant EOF upon end of file or error, but since that is a good integer value, feof and ferror(3S) should be used to check the success of getw. Getw assumes no special alignment in the file.

The above routines use buffered IO thus if a process uses them the input will be buffered in a per process buffer. If the process exits before reading all of the buffered input, characters still in the buffer will be lost when the per process buffer is deallocated, and data may appear to be lost. This can by avoided through using unbuffered input.

SEE ALSO
fopen(3S), putc(3S), gets(3S), scanf(3S), fread(3S), ungetc(3S)

DIAGNOSTICS
These functions return the integer constant EOF at end of file or upon read error.

A stop with message, `Reading bad file', means an attempt has been made to read from a stream that has not been opened for reading by fopen.

BUGS
The end-of-file return from getchar is incompatible with that in UNIX editions 1-6.

Because it is implemented as a macro, getc treats a stream argument with side effects incorrectly. In particular, `getc(*f++);' doesn't work sensibly.