Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getwc(3C) — HP-UX 10.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fclose(3S)

ferror(3S)

flockfile(3S)

fopen(3S)

fread(3S)

fgetws(3C)

putwc(3C)

read(2)

scanf(3S)

getwc(3C)

NAME

getwc(), getwc_unlocked(), getwchar(), getwchar_unlocked(), fgetwc(), fgetwc_unlocked() − get a wide character from a stream file

SYNOPSIS

#include <wchar.h>

wint_t getwc(FILE *stream);

wint_t getwc_unlocked(FILE *stream);

wint_t getwchar(void);

wint_t getwchar_unlocked(void);

wint_t fgetwc(FILE *stream);

wint_t fgetwc_unlocked(FILE *stream);

Remarks:

These functions are compliant with the XPG4 Worldwide Portability Interface wide-character I/O functions.  They parallel the 8 bit character I/O functions defined in getc(3S).

DESCRIPTION

getwc() Returns the next character from the named input stream, converts that to the corresponding wide character and moves the file pointer ahead one character in stream. getwchar() is defined as getwc(stdin).  getwc() and getwchar() are defined both as macros and as functions. 

fgetwc() Behaves like getwc(), but is a function rather than a macro. 

Definitions for these functions, the types wint_t, wchar_t and the value WEOF are provided in header file <wchar.h>. 

getwc_unlocked(), getwchar_unlocked(), and fgetwc_unlocked() are identical to getwc(), getwchar(), and fgetwc(); respectively, except they do not perform any internal locking of the stream for multi-thread applications.  The _unlocked routines can be used by multi-thread applications which have already used flockfile() to acquire a mutual exclusion lock for the stream (see flockfile(3S)).

RETURN VALUE

Upon successful completion, getwc(), getwc_unlocked(), getwchar(), getwchar_unlocked(), fgetwc(), and fgetwc_unlocked() return the next wide character read from stream (stdin for getwchar()) converted to a type wint_t.  If the stream is at end-of-file, the end-of-file indicator for the stream is set and WEOF is returned.  If a read error occurs, the error indicator for the stream is set, errno is set to indicate the error, and WEOF is returned. 

ferror() and feof() can be used to distinguish between an error condition and an end-of-file condition. 

ERRORS

getwc(), getwc_unlocked(), getwchar(), getwchar_unlocked(), fgetwc(), and fgetwc_unlocked() fail if data needs to be read into the stream’s buffer, and:

[EAGAIN] The O_NONBLOCK flag is set for the file descriptor underlying stream and the process would be delayed in the read operation. 

[EBADF] The file descriptor underlying stream is not a valid file descriptor open for reading. 

[EINTR] The read operation was terminated due to the receipt of a signal, and either no data was transferred or the implementation does not report partial transfer for this file. 

[EIO] A physical I/O error has occurred, or the process is a member of a background process and is attempting to read from its controlling terminal, and either the process is ignoring or blocking the SIGTTIN signal or the process group of the process is orphaned. 

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

Additional errno values may be set by the underlying read() function (see read(2)).

EXTERNAL INFLUENCES

Locale

The LC_CTYPE category determines how wide character conversions are done. 

International Code Set Support

Single- and multi-byte character code sets are supported. 

WARNINGS

If the value returned by getwc(), getwchar(), fgetwc(), or fgetwc_unlocked() is stored into a type wchar_t variable then compared against the constant WEOF, the comparison may never succeed because extension of a wchar_t to a wint_t is machine-dependent. 

AUTHOR

getwc() was developed by OSF and HP. 

SEE ALSO

fclose(3S), ferror(3S), flockfile(3S), fopen(3S), fread(3S), fgetws(3C), putwc(3C), read(2), scanf(3S). 

STANDARDS CONFORMANCE

getwc(): XPG4

fgetwc(): XPG4

getwchar(): XPG4

Hewlett-Packard Company  —  HP-UX Release 10.20:  July 1996

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026