NAME
fgetws
, fgetws_l
— get a line of wide characters
from a stream
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdio.h>
#include <wchar.h>
wchar_t *
fgetws
(wchar_t *restrict ws,
int n, FILE *restrict
stream);
#include <stdio.h>
#include <wchar.h>
#include <xlocale.h>
wchar_t *
fgetws_l
(wchar_t *restrict ws,
int n, FILE *restrict stream,
locale_t loc);
DESCRIPTION
The
fgetws
()
function reads at most one less than the number of characters specified by
n from the given stream and
stores them in the wide character string ws. Reading
stops when a newline character is found, at end-of-file or error. The
newline, if any, is retained. If any characters are read and there is no
error, a ‘\0
’ character is appended to
end the string.
While the
fgetws
()
function uses the current locale, the
fgetws_l
()
function may be passed a locale directly. See
xlocale(3) for more information.
RETURN VALUES
Upon successful completion, fgetws
()
returns ws. If end-of-file occurs before any
characters are read, fgetws
() returns
NULL
and the buffer contents remain unchanged. If an
error occurs, fgetws
() returns
NULL
and the buffer contents are indeterminate. The
fgetws
() function does not distinguish between
end-of-file and error; callers must use
feof(3) and
ferror(3)
to determine which occurred.
ERRORS
The fgetws
() function will fail if:
- [
EBADF
] - The given stream argument is not a readable stream.
- [
EILSEQ
] - The data obtained from the input stream does not form a valid multibyte character.
The function fgetws
() may also fail and
set errno for any of the errors specified for the
routines fflush(3), fstat(2), read(2), or malloc(3).
SEE ALSO
STANDARDS
The fgetws
() function conforms to
IEEE Std 1003.1-2001 (“POSIX.1”).