FGETWS(3)

NAME
fgetws, fgetws_l, - get a line of wide characters from a stream

SYNOPSIS
#include <stdio.h>
#include <wchar.h>
wchar_t *
fgetws(wchar_t * restrict ws, int n, FILE * restrict fp);
#include <xlocale.h>
wchar_t *
fgetws_l(wchar_t * restrict ws, int n, FILE * restrict fp, locale_t loc);

DESCRIPTION
The fgetws() and fgetws_l() functions read at most one less than the number of characters specified by n from the given fp and store 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.

The fgetws() function uses the current locale, while fgetws_l() uses the locale given as parameter.

RETURN VALUES
Upon successful completion, fgetws() and fgetws_l() return ws. If end-of-file occurs before any characters are read, they return NULL and the buffer contents remain unchanged. If an error occurs, they return NULL and the buffer contents are indeterminate. The fgetws() and fgetws_l() functions do not distinguish between end-of-file and error, and callers must use feof(3) and ferror(3) to determine which occurred.

ERRORS

[EBADF]
    The given fp argument is not a readable stream.

[EILSEQ]
    The data obtained from the input stream does not form a valid multibyte character.

The functions fgetws() and fgetws_l() 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
feof(3), ferror(3), fgets(3) xlocale(3)

STANDARDS
The fgetws() function conforms to p1003.1-2001. The fgetws_l() function is a Darwin extension.