---
name: "isupper_l"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/isupper"
---

# isupper\_l(3)

upper-case character test

Part of [isupper(3)](/isupper/3.md).

## NAME

**isupper**, **isupper\_l** – upper-case character test

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<ctype.h\>**

*int*\

**isupper**(*int c*);

*int*\

**isupper\_l**(*int c*, *locale\_t loc*);

## DESCRIPTION

The **isupper**() and **isupper\_l**() functions test for any upper-case letter. The value of the argument must be representable as an *unsigned char* or the value of EOF.

In the ASCII character set, this includes the following characters (with their numeric values shown in octal):

| | | | | |
| --- | --- | --- | --- | --- |
| 101 \`\`A'' | 102 \`\`B'' | 103 \`\`C'' | 104 \`\`D'' | 105 \`\`E'' |
| 106 \`\`F'' | 107 \`\`G'' | 110 \`\`H'' | 111 \`\`I'' | 112 \`\`J'' |
| 113 \`\`K'' | 114 \`\`L'' | 115 \`\`M'' | 116 \`\`N'' | 117 \`\`O'' |
| 120 \`\`P'' | 121 \`\`Q'' | 122 \`\`R'' | 123 \`\`S'' | 124 \`\`T'' |
| 125 \`\`U'' | 126 \`\`V'' | 127 \`\`W'' | 130 \`\`X'' | 131 \`\`Y'' |
| 132 \`\`Z'' |  |  |  |  |

The **isupper\_l**() function takes an explicit locale argument, whereas the **isupper**() function uses the current global or per-thread locale.

## RETURN VALUES

The **isupper**() and **isupper\_l**() functions return zero if the character tests false and return non-zero if the character tests true.

## COMPATIBILITY

The 4.4BSD extension of accepting arguments outside of the range of the *unsigned char* type in locales with large character sets is considered obsolete and may not be supported in future releases. The **iswupper**() or **iswupper\_l**() function should be used instead.

## SEE ALSO

[ctype(3)](/ctype/3.md), [ctype\_l(3)](/ctype_l/3.md), [iswupper(3)](/iswupper/3.md), [iswupper\_l(3)](/iswupper_l/3.md), [toupper(3)](/toupper/3.md), [toupper\_l(3)](/toupper_l/3.md), [xlocale(3)](/xlocale/3.md), [ascii(7)](/ascii/7.md)

## STANDARDS

The **isupper**() function conforms to ISO/IEC 9899:1990 (“ISO C90”).

## HISTORY

The **isupper**() function first appeared in Version 7 AT&T UNIX.
