Next: fgetpos, Previous: fflush, Up: Stdio

### 4.10 `fgetc`—get a character from a file or stream

Synopsis

         #include <stdio.h>
         int fgetc(FILE *fp);

         #include <stdio.h>
         int _fgetc_r(struct _reent *ptr, FILE *fp);

Description
Use `fgetc` to get the next single character from the file or stream identified by fp. As a side effect, `fgetc` advances the file's current position indicator.

For a macro version of this function, see `getc`.

The function `_fgetc_r` is simply a reentrant version of `fgetc` that is passed the additional reentrant structure pointer argument: ptr.

Returns
The next character (read as an `unsigned char`, and cast to `int`), unless there is no more data, or the host system reports a read error; in either of these situations, `fgetc` returns `EOF`.

You can distinguish the two situations that cause an `EOF` result by using the `ferror` and `feof` functions.

Portability
ANSI C requires `fgetc`.

Supporting OS subroutines required: `close`, `fstat`, `isatty`, `lseek`, `read`, `sbrk`, `write`.