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 nonlocking counterparts, see unlocked_stdio(3).
|fgetwc(), getwc()||Thread safety||MT-Safe|
In the absence of additional information passed to the fopen(3) 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.