towupper, towupper_l - transliterate lowercase wide-character code to uppercase
wint_t towupper(wint_t wc);
[CX] wint_t towupper_l(wint_t wc, locale_t locale);
For towupper(): [CX] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of POSIX.1-2017 defers to the ISO C standard.
The towupper() [CX] and towupper_l() functions have as a domain a type wint_t, the value of which the application shall ensure is a character representable as a wchar_t, and a wide-character code corresponding to a valid character in the locale used by the function or the value of WEOF. If the argument has any other value, the behavior is undefined. If the argument of towupper() [CX] or towupper_l() represents a lowercase wide-character code, and there exists a corresponding uppercase wide-character code as defined by character type information in the current locale [CX] or in the locale represented by locale, respectively (category LC_CTYPE), the result shall be the corresponding uppercase wide-character code. All other arguments in the domain are returned unchanged.
[CX] The behavior is undefined if the locale argument to towupper_l() is the special locale object LC_GLOBAL_LOCALE or is not a valid locale object handle.
Upon successful completion, the towupper() [CX] and towupper_l() functions shall return the uppercase letter corresponding to the argument passed. Otherwise, they shall return the argument unchanged.
No errors are defined.
XBD Locale, <locale.h>, <wctype.h>
First released in Issue 4.
The following change has been made in this version for alignment with ISO/IEC 9899:1990/Amendment 1:1995 (E):
The normative text is updated to avoid use of the term "must" for application requirements.
The towupper_l() function is added from The Open Group Technical Standard, 2006, Extended API Set Part 4.
POSIX.1-2008, Technical Corrigendum 1, XSH/TC1-2008/0681 , XSH/TC1-2008/0682 , and XSH/TC1-2008/0683  are applied.
POSIX.1-2008, Technical Corrigendum 2, XSH/TC2-2008/0374  is applied.
return to top of page