Manpages - fgetwc.3

Table of Contents

NAME

fgetwc, getwc - read a wide character from a FILE stream

SYNOPSIS

  #include <stdio.h>
  #include <wchar.h>

  wint_t fgetwc(FILE *stream);
  wint_t getwc(FILE *stream);

DESCRIPTION

The fgetwc*() function is the wide-character equivalent of the *fgetc*(3) function. It reads a wide character from stream and returns it. If the end of stream is reached, or if ferror(stream) becomes true, it returns *WEOF. If a wide-character conversion error occurs, it sets errno to EILSEQ and returns WEOF.

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).

RETURN VALUE

On success, fgetwc*() returns the next wide-character from the stream. Otherwise, *WEOF is returned, and errno is set to indicate the error.

ERRORS

Apart from the usual ones, there is

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

ATTRIBUTES

For an explanation of the terms used in this section, see *attributes*(7).

Interface Attribute Value
*fgetwc*(), *getwc*() Thread safety MT-Safe

CONFORMING TO

POSIX.1-2001, POSIX.1-2008, C99.

NOTES

The behavior of fgetwc*() 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 *fgetwc*() will actually read a multibyte sequence from the stream and then convert it to a wide character.

SEE ALSO

*fgetws*(3), *fputwc*(3), *ungetwc*(3), *unlocked_stdio*(3)

COLOPHON

This page is part of release 5.13 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Author: dt

Created: 2022-02-20 Sun 15:38