UNGETC(3)

NAME
4.66 `ungetc'--push data back into a stream

SYNOPSIS
     #include <stdio.h>
     int ungetc(int C, FILE *STREAM);
     int _ungetc_r(struct _reent *REENT, int C, FILE *STREAM);

DESCRIPTION
`ungetc' is used to return bytes back to STREAM to be read again. If C is EOF, the stream is unchanged. Otherwise, the unsigned char C is put back on the stream, and subsequent reads will see the bytes pushed back in reverse order. Pushed byes are lost if the stream is repositioned, such as by `fseek', `fsetpos', or `rewind'.
   The underlying file is not changed, but it is possible to push back something different than what was originally read. Ungetting a character will clear the end-of-stream marker, and decrement the file position indicator. Pushing back beyond the beginning of a file gives unspecified behavior.
   The alternate function `_ungetc_r' is a reentrant version. The extra argument REENT is a pointer to a reentrancy structure.

RETURNS
The character pushed back, or `EOF' on error.

PORTABILITY
ANSI C requires `ungetc', but only requires a pushback buffer of one byte; although this implementation can handle multiple bytes, not all can. Pushing back a signed char is a common application bug.
   Supporting OS subroutines required: `sbrk'.

SEE ALSO
ungetc is part of the library. The full documentation for is maintained as a Texinfo manual. If info and are properly installed at your site, the command

    info

will give you access to the complete manual.