getwchar
, getwchar_unlocked
—read a wide character from standard inputSynopsis
#include <wchar.h> wint_t getwchar(void); #define _GNU_SOURCE #include <wchar.h> wint_t getwchar_unlocked(void); #include <wchar.h> wint_t _getwchar_r(struct _reent *reent); #include <wchar.h> wint_t _getwchar_unlocked_r(struct _reent *reent);
Description
getwchar
function or macro is the wide character equivalent of
the getchar
function. You can use getwchar
to get the next
wide character from the standard input stream. As a side effect,
getwchar
advances the standard input’s current position indicator.
getwchar_unlocked
is a non-thread-safe version of getwchar
.
getwchar_unlocked
may only safely be used within a scope
protected by flockfile() (or ftrylockfile()) and funlockfile(). This
function may safely be used in a multi-threaded program if and only
if they are called while the invoking thread owns the (FILE *)
object, as is the case after a successful call to the flockfile() or
ftrylockfile() functions. If threads are disabled, then
getwchar_unlocked
is equivalent to getwchar
.
The alternate functions _getwchar_r
and _getwchar_unlocked_r
are
reentrant versions of the above. The extra argument reent is a pointer to
a reentrancy structure.
Returns
The next wide character cast to wint_t
, unless there is no more
data, or the host system reports a read error; in either of these
situations, getwchar
returns WEOF
.
You can distinguish the two situations that cause an WEOF
result by
using ‘ferror(stdin)
’ and ‘feof(stdin)
’.
Portability
getwchar
is required by C99.
getwchar_unlocked
is a GNU extension.