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.