towupper man page

towupper, towupper_l — convert a wide character to uppercase


#include <wctype.h>

wint_t towupper(wint_t wc);

wint_t towupper_l(wint_t wc, locale_t locale);

Feature Test Macro Requirements for glibc (see feature_test_macros(7)):


Since glibc 2.10:


Before glibc 2.10:



The towupper() function is the wide-character equivalent of the toupper(3) function. If wc is a lowercase wide character, and there exists an uppercase equivalent in the current locale, it returns the uppercase equivalent of wc. In all other cases, wc is returned unchanged.

The towupper_l() function performs the same task, but performs the conversion based on the character type information in the locale specified by locale. The behavior of towupper_l() is undefined if locale is the special locale object LC_GLOBAL_LOCALE (see duplocale(3)) or is not a valid locale object handle.

The argument wc must be representable as a wchar_t and be a valid character in the locale or be the value WEOF.

Return Value

If wc was convertible to uppercase, towupper() returns its uppercase equivalent; otherwise it returns wc.


The towupper_l() function first appeared in glibc 2.3.


For an explanation of the terms used in this section, see attributes(7).

Interface Attribute Value
towupper() Thread safety MT-Safe locale
towupper_l() Thread safety MT-Safe

Conforming to

towupper(): C99, POSIX.1-2001 (XSI); present as an XSI extension in POSIX.1-2008, but marked obsolete.

towupper_l(): POSIX.1-2008.


The behavior of these functions depends on the LC_CTYPE category of the locale.

These functions are not very appropriate for dealing with Unicode characters, because Unicode knows about three cases: upper, lower and title case.

See Also

iswupper(3), towctrans(3), towlower(3), locale(7)


This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at

Referenced By

iswupper(3), toupper(3), towctrans(3), towlower(3), wcscasecmp(3), wcsncasecmp(3).

The man page towupper_l(3) is an alias of towupper(3).

2017-09-15 GNU Linux Programmer's Manual