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

# wctrans(3)

wide-character translation mapping

## NAME

wctrans - wide-character translation mapping

## LIBRARY

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

## SYNOPSIS

```
#include <wctype.h>
```

**wctrans\_t wctrans(const char \****name***);**

## DESCRIPTION

The *wctrans\_t* type represents a mapping which can map a wide character to another wide character. Its nature is implementation-dependent, but the special value *(wctrans\_t) 0* denotes an invalid mapping. Nonzero *wctrans\_t* values can be passed to the [**towctrans**(3)](/towctrans/3.md) function to actually perform the wide-character mapping.

The **wctrans**() function returns a mapping, given by its name. The set of valid names depends on the **LC\_CTYPE** category of the current locale, but the following names are valid in all locales.

-

  | | |
  | --- | --- |
  | "tolower" - | realizes the [**tolower**(3)](/tolower/3.md) mapping |
  | "toupper" - | realizes the [**toupper**(3)](/toupper/3.md) mapping |

## RETURN VALUE

The **wctrans**() function returns a mapping descriptor if the *name* is valid. Otherwise, it returns *(wctrans\_t) 0*.

## ATTRIBUTES

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

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

## STANDARDS

C11, POSIX.1-2008.

## HISTORY

POSIX.1-2001, C99.

## NOTES

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

## SEE ALSO

[**towctrans**(3)](/towctrans/3.md)
