fgetws - read a wide-character string from a FILE stream
Standard C library (libc
, -lc
)
#include <wchar.h>
wchar_t *fgetws(wchar_t ws[restrict .n], int n, FILE *restrict stream);
The fgetws() function is the wide-character
equivalent of the fgets(3) 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 null wide character
(L'\0'). 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 nonlocking counterpart, see unlocked_stdio(3).
The fgetws() function, if successful, returns
ws
. If end of stream was already reached or if an error
occurred, it returns NULL.
For an explanation of the terms used in this section, see attributes(7).
Interface | Attribute | Value |
fgetws() |
Thread safety | MT-Safe |
C11, POSIX.1-2008.
POSIX.1-2001, C99.
The behavior of fgetws() depends on the LC_CTYPE category of the current locale.
In the absence of additional information passed to the fopen(3) 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.
fgetwc(3), unlocked_stdio(3)