GETC(3) | Library Functions Manual | 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

`#include <stdio.h>`

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”).

# HISTORY

The `getc`() and `getw`() functions appeared in Version 1 AT&T UNIX.

# 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.

September 2, 2019 | NetBSD 9.3