UNGETWC(3) Library Functions Manual UNGETWC(3)

ungetwcpush wide-character code back into input stream

#include <stdio.h>
#include <wchar.h>

wint_t ungetwc(wint_t wc, FILE *stream);

The ungetwc() function pushes the character corresponding to the wide-character code specified by wc back onto the input stream pointed to by stream . The pushed-back characters 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 (.Fn fseek , fsetpos(3) or rewind(3) ) discards any pushed-back characters for the stream. The external storage corresponding to the stream is unchanged.

One character of push-back is guaranteed. If ungetwc() is called too many times on the same stream without an intervening read or file-positioning operation on that stream, the operation may fail.

If the value of equals that of the macro WEOF, the operation fails and the input stream is unchanged.

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

Upon successful completion, ungetwc() returns the wide-character code corresponding to the pushed-back character. Otherwise it returns WEOF.

The ungetwc() function may fail if:

An invalid character sequence is detected, or a wide-character code does not correspond to a valid character.

None.

None.

None.

fseek(3) , fsetpos(3) , read(3) , rewind(3) , setbuf(3) , <stdio.h> , <wchar.h> .

Derived from the MSE working draft.

February 1997 posix.fail