April 25, 2001 GETC 3

### NAME

fgetc, getc, getchar, getc_unlocked, getchar_unlocked, getw - get next character or word from input stream

### LIBRARY

Standard C Library (libc, -lc)

### SYNOPSIS

```int` fgetc(```FILE *stream`)
```int` getc(```FILE *stream`)
```int` getchar(``)
```int` getc_unlocked(```FILE *stream`)
```int` getchar_unlocked(``)
```int` getw(```FILE *stream`)

### DESCRIPTION

The fgetc(``) function obtains the next input character (if present) from the stream pointed at by ```stream`, or the next character pushed back on the stream via ungetc(3).

The getc(``) function acts essentially identically to fgetc(``), but is a macro that expands in-line.

The getchar(``) function is equivalent to: getc with the argument stdin.

The getc_unlocked(``) and getchar_unlocked(``) functions provide functionality identical to that of getc(``) and getchar(``), respectively, but do not perform implicit locking of the streams they operate on. In multi-threaded programs they may be used only within a scope in which the stream has been successfully locked by the calling thread using either flockfile(3) or ftrylockfile(3), and may later be released using funlockfile(3).

The getw(``) function obtains the next int (if present) from the stream pointed at by ```stream`.

### RETURN VALUES

If successful, these routines return the next requested object from the ```stream`. If the stream is at end-of-file or a read error occurs, the routines return ```EOF`. The routines feof(3) and ferror(3) must be used to distinguish between end-of-file and error. If an error occurs, the global variable errno is set to indicate the error. The end-of-file condition is remembered, even on a terminal, and all subsequent attempts to read will return ```EOF` until the condition is cleared with clearerr(3).

### SEE ALSO

ferror(3), flockfile(3), fopen(3), fread(3), ftrylockfile(3), funlockfile(3), putc(3), ungetc(3)

### STANDARDS

The fgetc(``), getc(``) and getchar(``) functions conform to ANSI X3.159-1989 (``ANSI C89'') . The getc_unlocked(``) and getchar_unlocked(``) functions conform to ISO/IEC 9945-1:1996 (``POSIX.1'') .

### BUGS

Since ```EOF` is a valid integer value, feof(3) and ferror(3) must be used to check for failure after calling getw(``). The size and byte order of an int varies from one machine to another, and getw(``) is not recommended for portable applications.