---
name: "getwchar"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/getwchar"
---

# getwchar(3)

read a wide character from standard input

## NAME

getwchar - read a wide character from standard input

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <wchar.h>
```

**wint\_t getwchar(void);**

## DESCRIPTION

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

For a nonlocking counterpart, see [**unlocked\_stdio**(3)](/unlocked_stdio/3.md).

## RETURN VALUE

The **getwchar**() function returns the next wide-character from standard input, or **WEOF**.

## ATTRIBUTES

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

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **getwchar**() | Thread safety | MT-Safe |

## STANDARDS

C11, POSIX.1-2008.

## HISTORY

C99, POSIX.1-2001.

## NOTES

The behavior of **getwchar**() depends on the **LC\_CTYPE** category of the current locale.

It is reasonable to expect that **getwchar**() will actually read a multibyte sequence from standard input and then convert it to a wide character.

## SEE ALSO

[**fgetwc**(3)](/fgetwc/3.md), [**unlocked\_stdio**(3)](/unlocked_stdio/3.md)
