---
name: "wctob"
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/wctob"
---

# wctob(3)

try to represent a wide character as a single byte

## NAME

wctob - try to represent a wide character as a single byte

## LIBRARY

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

## SYNOPSIS

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

**int wctob(wint\_t** *c***);**

## DESCRIPTION

The **wctob**() function tests whether the multibyte representation of the wide character *c*, starting in the initial state, consists of a single byte. If so, it is returned as an *unsigned char*.

Never use this function. It cannot help you in writing internationalized programs. Internationalized programs must never distinguish single-byte and multibyte characters.

## RETURN VALUE

The **wctob**() function returns the single-byte representation of *c*, if it exists, or **EOF** otherwise.

## ATTRIBUTES

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

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

## STANDARDS

C11, POSIX.1-2008.

## HISTORY

POSIX.1-2001, C99.

## NOTES

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

This function should never be used. Internationalized programs must never distinguish single-byte and multibyte characters. Use either [**wctomb**(3)](/wctomb/3.md) or the thread-safe [**wcrtomb**(3)](/wcrtomb/3.md) instead.

## SEE ALSO

[**btowc**(3)](/btowc/3.md), [**wcrtomb**(3)](/wcrtomb/3.md), [**wctomb**(3)](/wctomb/3.md)
