ungetc(3C)




NAME

     ungetc - push byte back into input stream


SYNOPSIS

     #include <stdio.h>

     int ungetc(int c, FILE *stream);


DESCRIPTION

     The ungetc() function pushes the byte specified by  c  (con-
     verted  to  an  unsigned  char)  back  onto the input stream
     pointed to by stream. The pushed-back bytes will be returned
     by  subsequent  reads on that stream in the reverse order of
     their pushing.  A  successful  intervening  call  (with  the
     stream  pointed to by stream) to a file-positioning function
     (  fseek(3C),  fsetpos(3C)  or  rewind(3C))   discards   any
     pushed-back  bytes  for  the  stream.  The  external storage
     corresponding to the stream is unchanged.

     Four bytes of push-back  are  guaranteed.   If  ungetc()  is
     called  too  many times on the same stream without an inter-
     vening read or file-positioning operation  on  that  stream,
     the operation may fail.

     If the value of c equals that of the macro EOF,  the  opera-
     tion fails and the input stream is unchanged.

     A successful call to ungetc() clears the end-of-file indica-
     tor for the stream. The value of the file-position indicator
     for the stream after reading or discarding  all  pushed-back
     bytes  will  be  the  same  as  it was before the bytes were
     pushed back. The file-position indicator is  decremented  by
     each  successful call to ungetc(); if its value was 0 before
     a call, its value is indeterminate after the call.


RETURN VALUES

     Upon successful completion, ungetc() returns the byte pushed
     back after conversion.  Otherwise it returns EOF.


ERRORS

     No errors are defined.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | MT-Level                    | MT-Safe                     |
    |_____________________________|_____________________________|


SEE ALSO

     read(2),   intro(3),   fseek(3C),   fsetpos(3C),   getc(3C),
     setbuf(3C), stdio(3C), attributes(5)


Man(1) output converted with man2html