The fgetws function is the wide-character equivalent of the fgets
function. It reads a string of at most n-1 wide characters into the
wide-character array pointed to by ws, and adds a terminating L'\0'
character. It stops reading wide characters after it has encountered and
stored a newline wide character. It also stops when end of stream is reached.
The programmer must ensure that there is room for at least n wide
characters at ws.
For a non-locking counterpart, see unlocked_stdio(3).
The behaviour of fgetws 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 fgetws will actually read a multibyte string
from the stream and then convert it to a wide character string.
This function is unreliable, because it does not permit to deal properly with
null wide characters that may be present in the input.