.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" References consulted:
.\"   GNU glibc-2 source code and manual
.\"   Dinkumware C library reference http://www.dinkumware.com/
.\"   OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html
.\"   ISO/IEC 9899:1999
.\"
.TH UNGETWC 3  1999-09-19 "GNU" "Linux Programmer's Manual"
.SH NAME
ungetwc \- push back a wide character onto a FILE stream
.SH SYNOPSIS
.nf
.B #include <wchar.h>
.sp
.BI "wint_t ungetwc(wint_t " wc ", FILE *" stream );
.fi
.SH DESCRIPTION
The
.BR ungetwc ()
function is the wide-character equivalent of the
.BR ungetc (3)
function.
It pushes back a wide character onto \fIstream\fP and returns it.
.PP
If \fIwc\fP is \fBWEOF\fP, it returns \fBWEOF\fP.
If \fIwc\fP is an invalid wide character,
it sets \fIerrno\fP to \fBEILSEQ\fP and returns \fBWEOF\fP.
.PP
If \fIwc\fP is a valid wide character, it is pushed back onto the stream
and thus becomes available for future wide-character read operations.
The file-position indicator is decremented by one or more.
The end-of-file
indicator is cleared.
The backing storage of the file is not affected.
.PP
Note: \fIwc\fP need not be the last wide-character read from the stream;
it can be any other valid wide character.
.PP
If the implementation supports multiple push-back operations in a row, the
pushed-back wide characters will be read in reverse order; however, only one
level of push-back is guaranteed.
.SH "RETURN VALUE"
The
.BR ungetwc ()
function returns \fIwc\fP when successful, or \fBWEOF\fP upon
failure.
.SH "CONFORMING TO"
C99.
.SH NOTES
The behavior of
.BR ungetwc ()
depends on the
.B LC_CTYPE
category of the
current locale.
.SH "SEE ALSO"
.BR fgetwc (3)
.SH COLOPHON
This page is part of release 3.22 of the Linux
.I man-pages
project.
A description of the project,
and information about reporting bugs,
can be found at
http://www.kernel.org/doc/man-pages/.
