LIBRARY

SYNOPSIS

For the fgetwc() and getwc() functions, application developers
may want to specify an #include
statement for <stdio.h> before the one for
<wchar.h> if programs are being developed for
multiple platforms. The additional #include statement
is not required on
Tru64 UNIX
systems or by ISO or X/Open standards, but may be required
on other vendors' systems that conform to these standards.

STANDARDS

Interfaces documented on this reference page conform to industry
standards as follows:

fgetwc(), getwc(), getwchar(): XPG4, XPG4-UNIX

Refer to the standards(5) reference page for more information
about industry standards and associated tags.

PARAMETERS

Specifies an input stream from a file.

DESCRIPTION

The fgetwc()
function gets the next character
from the input stream specified by the stream parameter, converts
it to a wide-character code, and advances the associated file position
indicator for the stream. If an error occurs, the file position
indicator is indeterminate. This function also marks the st_atime
field of the file associated with stream for update.

The getwc() function performs the same function as fgetwc()
but can be implemented as a macro on implementations that
conform to X/Open standards.

The getwchar() function gets the next wide
character from the standard input stream. This function
is equivalent to getwc(stdin).

The getwc_unlocked() function is functionally identical to the
getwc() function, except that getwc_unlocked()
may be safely used only within a scope that is protected by the
flockfile() and funlockfile() functions used as a pair.
The caller must ensure that the stream is locked before these
functions are used.

On return from calls to the preceding functions,
applications should use ferror() and feof()
to distinguish between error and end-of-file conditions.

NOTES

Because getwc() can be implemented as a macro, applications
should not use it with a stream argument that is an expression with
side effects (for example, getwc(*f++)). The fgetwc()
function is recommended over getwc() for reading characters
from a stream associated with a file.

If the value returned by the getwchar() function
is stored into a variable of type wchar_t and then compared to the
macro WEOF (defined as type wint_t in the wchar.h
header file), the comparison may never succeed.

RETURN VALUES

These functions return either the resultant wide-character code or,
for error and end-of-file conditions,
the constant WEOF (wide-character End-Of-File).

ERRORS

If any of the following conditions occur, the
fgetwc(), getwc(), getwc_unlocked(), and
getwchar(),
functions set errno to the corresponding value:
The O_NONBLOCK flag is set for the file descriptor underlying the
stream parameter and
the process would be delayed by the read operation.
The file descriptor underlying the stream parameter is not a valid file
descriptor open for reading.
The data obtained from the input stream does not form a valid
wide character in the current locale.
The read operation was interrupted by a signal that was caught, and no
data was transferred.
One of the following errors occurred:
The call is attempting to read from the process's controlling terminal
and either the process is ignoring or blocking the SIGTTIN
signal or the process group is orphaned.
[XPG4-UNIX] A physical I/O error occurred.
Insufficient memory is available for the operation.
The device associated with stream either does not exist or
cannot handle the request.