ISXDIGIT(3)

πŸ“¦
version 15.1 Β· 2 versions
, in freebsd 15.1

okay so bestie, welcome to the ISXDIGIT(3) page β€” it’s part of the Library Functions Manual, and we’re about to do a hexadecimal-digit vibe check πŸ’…βœ¨

🌸 NAME 🌸

isxdigit, ishexnumber, isxdigit_l, ishexnumber_l β€” the hexadecimal-digit character test, periodt. πŸ’–

🧚 LIBRARY 🧚

Standard C Library (libc, -lc) β€” iconic, lowkey essential. πŸ‘‘

✨ SYNOPSIS ✨

okay so here’s the exact shape of it, no cap:

#include <ctype.h>

int
isxdigit(int c);

int
ishexnumber(int c);

int
isxdigit_l(int c, locale_t loc);

int
ishexnumber_l(int c, locale_t loc);

πŸ¦‹ DESCRIPTION πŸ¦‹

The isxdigit() and isxdigit_l() functions test for any hexadecimal-digit character. Regardless of locale, this includes the following characters only:

  • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • A, B, C, D, E, F
  • a, b, c, d, e, f

The ishexnumber() and ishexnumber_l() functions behave similarly to isxdigit() and isxdigit_l(), but may recognize additional characters, depending on the current locale setting. So like, same energy, possible extra glyphs depending on your locale 🌍✨

The value of the argument must be representable as an unsigned char or the value of EOF. That’s a real rule, not a drill 🚨

The _l-suffixed versions take an explicit locale argument, whereas the non-suffixed versions use the current global or per-thread locale. iykyk 🫢

πŸ’– RETURN VALUES πŸ’–

The isxdigit() and isxdigit_l() functions return zero if the character tests false and return non-zero if the character tests true. That’s it β€” zero = nope, non-zero = yup πŸ’…

πŸ’€ COMPATIBILITY πŸ’€

okay, cautionary tale time: 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 iswxdigit() or iswxdigit_l() function should be used instead. So don’t get too comfy with that old behavior, bestie 😭

πŸŽ€ SEE ALSO πŸŽ€

🌈 STANDARDS 🌈

The isxdigit() function conforms to ISO/IEC 9899:1990 (β€œISO C90”). slay for standards compliance πŸ‘‘

πŸ“ HISTORY πŸ“

The ishexnumber() function appeared in 4.4BSD. A little historical icon ✨

xoxo, this Debian edition was dated December 19, 2022, and it’s the ISXDIGIT(3) page signing off β€” mwah πŸ’‹

πŸ“¦ where this page comes from
  • freebsd 15.1: base 15.1
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms