UNGETC(3) | Library Functions Manual | UNGETC(3)

# NAME

`ungetc` — un-get character from input stream

# SYNOPSIS

`#include <stdio.h>`

int
`ungetc`(int c, FILE *stream);

# DESCRIPTION

The `ungetc`() function pushes the character c (converted to an unsigned char) back onto the input stream pointed to by stream. The pushed-backed characters will be returned by subsequent reads on the stream (in reverse order). A successful intervening call, using the same stream, to one of the file positioning functions (fseek(3), fsetpos(3), or rewind(3)) will discard the pushed back characters.

One character of push-back is guaranteed, but as long as there is sufficient memory, an effectively infinite amount of pushback is allowed.

If a character is successfully pushed-back, the end-of-file indicator for the stream is cleared.

# RETURN VALUES

The `ungetc`() function returns the character pushed-back after the conversion, or `EOF` if the operation fails. If the value of the argument c character equals `EOF`, the operation will fail and the stream will remain unchanged.

# SEE ALSO

fseek(3), getc(3), setvbuf(3), ungetwc(3)

# STANDARDS

The `ungetc`() function conforms to ANSI X3.159-1989 (“ANSI C89”).

# HISTORY

The `ungetc`() function first appeared in Version 7 AT&T UNIX.

September 11, 2022 | Debian