The fgetwc function is the wide-character equivalent of the fgetc
function. It reads a wide character from stream and returns it. If the
end of stream is reached, or if ferror(stream) becomes true, it returns
WEOF. If a wide character conversion error occurs, it sets errno to
EILSEQ and returns WEOF.
The getwc function or macro functions identically to fgetwc. It
may be implemented as a macro, and may evaluate its argument more than once.
There is no reason ever to use it.
For non-locking counterparts, see unlocked_stdio(3).
The behaviour of fgetwc depends on the LC_CTYPE category of the current
In the absence of additional information passed to the fopen call, it is
reasonable to expect that fgetwc will actually read a multibyte
sequence from the stream and then convert it to a wide character.