lconv(3type)

πŸ’– lconv β€” the numeric formatting glow-up guide πŸ’–

okay bestie, welcome to lconv(3type), the manual page for the struct that holds all your numeric formatting info. it's giving "I just want my numbers to look cute in every locale" energy and honestly? we stan. πŸŽ€


✨ NAME ✨

lconv β€” numeric formatting information

πŸ“š LIBRARY πŸ“š

Standard C library (libc) β€” the og, the blueprint, the mother of all libraries fr fr.

πŸ¦‹ SYNOPSIS πŸ¦‹

#include <locale.h>

struct lconv {                /* Values in the "C" locale: */
    char *decimal_point;      /* "." */
    char *thousands_sep;      /* "" */
    char *grouping;           /* "" */
    char *mon_decimal_point;  /* "" */
    char *mon_thousands_sep;  /* "" */
    char *mon_grouping;       /* "" */
    char *positive_sign;      /* "" */
    char *negative_sign;      /* "" */
    char *currency_symbol;    /* "" */
    char  frac_digits;        /* CHAR_MAX */
    char  p_cs_precedes;      /* CHAR_MAX */
    char  n_cs_precedes;      /* CHAR_MAX */
    char  p_sep_by_space;     /* CHAR_MAX */
    char  n_sep_by_space;     /* CHAR_MAX */
    char  p_sign_posn;        /* CHAR_MAX */
    char  n_sign_posn;        /* CHAR_MAX */
    char *int_curr_symbol;    /* "" */
    char  int_frac_digits;    /* CHAR_MAX */
    char  int_p_cs_precedes;  /* CHAR_MAX */
    char  int_n_cs_precedes;  /* CHAR_MAX */
    char  int_p_sep_by_space; /* CHAR_MAX */
    char  int_n_sep_by_space; /* CHAR_MAX */
    char  int_p_sign_posn;    /* CHAR_MAX */
    char  int_n_sign_posn;    /* CHAR_MAX */
};

no cap, that's the whole struct. every member up there is real and every comment is the actual value it takes in the "C" locale. πŸ’…

🌸 DESCRIPTION 🌸

So. This struct is a little container full of members that are all about formatting numeric values. That's literally it β€” it's the lookup table your library uses when it needs to know "does the decimal point go here, does the currency symbol go before or after, do we group digits with commas or spaces or nothing at all". πŸ‘‘

And the tea: in the "C" locale, the members have exactly the values shown in the comments above. So decimal_point is ".", basically everything else string-wise is "" (empty), and all the char fields are CHAR_MAX. No drama, no surprises, just the default vibe. 🌈

⭐ STANDARDS ⭐

C11, POSIX.1-2024. certified. respected. periodt.

πŸ•°οΈ HISTORY πŸ•°οΈ

lconv has been around since SUSv1, POSIX.1-2001 β€” so like, it's an elder and we respect our elders. πŸ™‡

Then some of its members showed up later:

  • .int_p_cs_precedes
  • .int_n_cs_precedes
  • .int_p_sep_by_space
  • .int_n_sep_by_space
  • .int_p_sign_posn
  • .int_n_sign_posn

All six of those arrived in POSIX.1-2001. the international currency glow-up, if you will. ✨

πŸ‘€ SEE ALSO πŸ‘€

iykyk β€” go read localeconv(3) next, that's the one that actually hands you one of these structs.


reminder bestie: don't go editing the struct or assuming behaviour that isn't written here. this page tells you what the type is, not what every function does with it. facts only, no speculation, that's the rule. 🫢

and that's a wrap! this page came to you from Linux man-pages 6.20, dated 2026-02-08. slay, thanks for reading, go format some numbers. πŸ’–πŸŒΈπŸ¦‹

πŸ“¦ where this page comes from
  • arch rolling: man-pages 6.20-1 Β· BSD-2-Clause AND BSD-3-Clause AND BSD-4.3TAHOE AND BSD-4-Clause-UC AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-linking-exception AND LGPL-3.0-or-later AND LicenseRef-Public-Domain AND LicenseRef-UltraPermissive AND Linux-man-pages-1-para AND Linux-man-pages-copyleft AND Linux-man-pages-copyleft-2-para AND Linux-man-pages-copyleft-var AND MIT AND Spencer-94
  • nixpkgs unstable: man-pages 6.20
  • πŸ“œ the page's license: Linux-man-pages-copyleft
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms