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

# isrune(3)

valid character test

## NAME

**isrune**, **isrune\_l** – valid character test

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

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

*int*\

**isrune**(*int c*);

*int*\

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

## DESCRIPTION

The **isrune**() and **isrune\_l**() functions test for any character that is valid in the current character set. In the ASCII character set, this is equivalent to **isascii**().

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

## RETURN VALUES

The **isrune**() and **isrune\_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 **iswrune**() or **iswrune\_l**() function should be used instead.

## SEE ALSO

[ctype(3)](/ctype/3.md), [ctype\_l(3)](/ctype_l/3.md), [isascii(3)](/isascii/3.md), [iswrune(3)](/iswrune/3.md), [iswrune\_l(3)](/iswrune_l/3.md), [xlocale(3)](/xlocale/3.md), [ascii(7)](/ascii/7.md)

## HISTORY

The **isrune**() function appeared in 4.4BSD.
