---
name: "getwchar"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/fgetwc"
---

# getwchar(3)

get next wide character from input stream

Part of [fgetwc(3)](/fgetwc/3.md).

## NAME

**fgetwc**, **getwc**, **getwchar** – get next wide character from input stream

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<stdio.h\>**

**#include \<wchar.h\>**

*wint\_t*\

**fgetwc**(*FILE \*stream*);

*wint\_t*\

**getwc**(*FILE \*stream*);

*wint\_t*\

**getwchar**(*void*);

## DESCRIPTION

The **fgetwc**() function obtains the next input wide character (if present) from the stream pointed at by *stream*, or the next character pushed back on the stream via [ungetwc(3)](/ungetwc/3.md).

The **getwc**() function acts essentially identically to **fgetwc**().

The **getwchar**() function is equivalent to **getwc**() with the argument stdin.

## RETURN VALUES

If successful, these routines return the next wide character from the *stream*. If the stream is at end-of-file or a read error occurs, the routines return WEOF. The routines [feof(3)](/feof/3.md) and [ferror(3)](/ferror/3.md) must be used to distinguish between end-of-file and error. If an error occurs, the global variable *errno* is set to indicate the error. The end-of-file condition is remembered, even on a terminal, and all subsequent attempts to read will return WEOF until the condition is cleared with [clearerr(3)](/clearerr/3.md).

## SEE ALSO

[ferror(3)](/ferror/3.md), [fopen(3)](/fopen/3.md), [fread(3)](/fread/3.md), [getc(3)](/getc/3.md), [putwc(3)](/putwc/3.md), [stdio(3)](/stdio/3.md), [ungetwc(3)](/ungetwc/3.md)

## STANDARDS

The **fgetwc**(), **getwc**() and **getwchar**() functions conform to ISO/IEC 9899:1999 (“ISO C99”).

## HISTORY

A version of the **getc**() and **getw**() functions appeared in Version 1 AT&T UNIX.
