langinfo.h(7POSIX)
๐ธ PROLOG (the lil disclaimer bestie) ๐ธ
okay so real talk before we dive in ๐ this manual page is part of the POSIX Programmer's Manual. the Linux implementation of this interface may differ (so like, go consult the corresponding Linux manual page for the details of Linux behavior, iykyk), or honestly the interface may not even be implemented on Linux at all ๐ญ. not me being the bearer of bad news fr fr.
โจ NAME โจ
langinfo.h โ language information constants ๐ฆ
(that's the whole vibe. it's the header that holds your locale's lil vocabulary.)
๐ SYNOPSIS ๐
#include <langinfo.h>
that's it. that's the summoning ritual ๐ซถ
๐ DESCRIPTION ๐
okay so here's the tea โ the <langinfo.h> header shall define the symbolic constants used to identify items of langinfo data (peep nl_langinfo() for the actual fetching, bestie).
the <langinfo.h> header shall define the locale_t type as described in <locale.h> ๐
the <langinfo.h> header shall define the nl_item type as described in <nl_types.h> ๐
and then โ drumroll ๐ฅ โ the <langinfo.h> header shall define the following symbolic constants, all with type nl_item. the entries under Category tell you which setlocale() category each item is defined in. it's giving organized. it's giving catalog.
๐ the constants, the icons, the moment ๐
CODESETโ CategoryLC_CTYPEโ Codeset name. ๐งD_T_FMTโ CategoryLC_TIMEโ String for formatting date and time.D_FMTโ CategoryLC_TIMEโ Date format string.T_FMTโ CategoryLC_TIMEโ Time format string.T_FMT_AMPMโ CategoryLC_TIMEโ a.m. or p.m. time format string.AM_STRโ CategoryLC_TIMEโ Ante-meridiem affix.PM_STRโ CategoryLC_TIMEโ Post-meridiem affix.DAY_1โ CategoryLC_TIMEโ Name of the first day of the week (for example, Sunday).DAY_2โ CategoryLC_TIMEโ Name of the second day of the week (for example, Monday).DAY_3โ CategoryLC_TIMEโ Name of the third day of the week (for example, Tuesday).DAY_4โ CategoryLC_TIMEโ Name of the fourth day of the week (for example, Wednesday).DAY_5โ CategoryLC_TIMEโ Name of the fifth day of the week (for example, Thursday).DAY_6โ CategoryLC_TIMEโ Name of the sixth day of the week (for example, Friday).DAY_7โ CategoryLC_TIMEโ Name of the seventh day of the week (for example, Saturday).ABDAY_1โ CategoryLC_TIMEโ Abbreviated name of the first day of the week.ABDAY_2โ CategoryLC_TIMEโ Abbreviated name of the second day of the week.ABDAY_3โ CategoryLC_TIMEโ Abbreviated name of the third day of the week.ABDAY_4โ CategoryLC_TIMEโ Abbreviated name of the fourth day of the week.ABDAY_5โ CategoryLC_TIMEโ Abbreviated name of the fifth day of the week.ABDAY_6โ CategoryLC_TIMEโ Abbreviated name of the sixth day of the week.ABDAY_7โ CategoryLC_TIMEโ Abbreviated name of the seventh day of the week.MON_1โ CategoryLC_TIMEโ Name of the first month of the year.MON_2โ CategoryLC_TIMEโ Name of the second month.MON_3โ CategoryLC_TIMEโ Name of the third month.MON_4โ CategoryLC_TIMEโ Name of the fourth month.MON_5โ CategoryLC_TIMEโ Name of the fifth month.MON_6โ CategoryLC_TIMEโ Name of the sixth month.MON_7โ CategoryLC_TIMEโ Name of the seventh month.MON_8โ CategoryLC_TIMEโ Name of the eighth month.MON_9โ CategoryLC_TIMEโ Name of the ninth month.MON_10โ CategoryLC_TIMEโ Name of the tenth month.MON_11โ CategoryLC_TIMEโ Name of the eleventh month.MON_12โ CategoryLC_TIMEโ Name of the twelfth month.ABMON_1โ CategoryLC_TIMEโ Abbreviated name of the first month.ABMON_2โ CategoryLC_TIMEโ Abbreviated name of the second month.ABMON_3โ CategoryLC_TIMEโ Abbreviated name of the third month.ABMON_4โ CategoryLC_TIMEโ Abbreviated name of the fourth month.ABMON_5โ CategoryLC_TIMEโ Abbreviated name of the fifth month.ABMON_6โ CategoryLC_TIMEโ Abbreviated name of the sixth month.ABMON_7โ CategoryLC_TIMEโ Abbreviated name of the seventh month.ABMON_8โ CategoryLC_TIMEโ Abbreviated name of the eighth month.ABMON_9โ CategoryLC_TIMEโ Abbreviated name of the ninth month.ABMON_10โ CategoryLC_TIMEโ Abbreviated name of the tenth month.ABMON_11โ CategoryLC_TIMEโ Abbreviated name of the eleventh month.ABMON_12โ CategoryLC_TIMEโ Abbreviated name of the twelfth month.ERAโ CategoryLC_TIMEโ Era description segments.ERA_D_FMTโ CategoryLC_TIMEโ Era date format string.ERA_D_T_FMTโ CategoryLC_TIMEโ Era date and time format string.ERA_T_FMTโ CategoryLC_TIMEโ Era time format string.ALT_DIGITSโ CategoryLC_TIMEโ Alternative symbols for digits.RADIXCHARโ CategoryLC_NUMERICโ Radix character.THOUSEPโ CategoryLC_NUMERICโ Separator for thousands.YESEXPRโ CategoryLC_MESSAGESโ Affirmative response expression.NOEXPRโ CategoryLC_MESSAGESโ Negative response expression.CRNCYSTRโ CategoryLC_MONETARYโ Local currency symbol, preceded by'-'if the symbol should appear before the value,'+'if the symbol should appear after the value, or'.'if the symbol should replace the radix character. If the local currency symbol is the empty string, implementations may return the empty string (""). ๐ธ
โ ๏ธ bestie listen. if the locale's values forp_cs_precedesandn_cs_precedesdo not match, then the value ofnl_langinfo(CRNCYSTR)andnl_langinfo_l(CRNCYSTR,loc)is unspecified. that's the undefined-vibes zone. do not go there. ๐
๐ซถ the functions ๐ซถ
the following shall be declared as a function and may also be defined as a macro. a function prototype shall be provided.
char *nl_langinfo(nl_item);
char *nl_langinfo_l(nl_item, locale_t);
also, inclusion of the <langinfo.h> header may also make visible all symbols from <nl_types.h>. surprise bonus content, slay โจ
the following sections are informative. (aka: the tea continues but it's optional reading ๐ )
๐ APPLICATION USAGE ๐
wherever possible, users are advised to use functions compatible with those in the ISO C standard to access items of langinfo data. like, that's the move.
in particular:
- the
strftime()function should be used to access date and time information defined in categoryLC_TIME๐ฐ๏ธ - the
localeconv()function should be used to access information corresponding toRADIXCHAR,THOUSEP, andCRNCYSTR๐
it's giving "use the right tool for the job", periodt.
๐ RATIONALE ๐
None.
(yeah. nothing. the committee said "no thoughts, head empty" and honestly? iconic.)
๐ฎ FUTURE DIRECTIONS ๐ฎ
None.
(the future is a mystery but this header's future is literally nothing. we love stability.)
๐ SEE ALSO ๐
- Chapter 7, Locale
<locale.h><nl_types.h>
and from the System Interfaces volume of POSIX.1โ2017:
nl_langinfo()localeconv()strfmon()strftime()
go read those too, bestie, they're the rest of the lore ๐ฆ
๐ COPYRIGHT ๐
Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group.
In the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html .
Any typographical or formatting errors that appear in this page are most likely to have been introduced during the conversion of the source files to man page format. To report such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .
๐ and that's the whole page, babe. this one came from IEEE/The Open Group, 2017 โ the langinfo.h(7POSIX) page, still serving looks. take care of her, she's a classic. mwah ๐โจ๐
๐ฆ where this page comes from
- debian bookworm: manpages-posix-dev 2017a-2 ยท Other
- debian trixie: manpages-posix-dev 2017a-2 ยท Other
- ubuntu jammy: manpages-posix-dev 2017a-2 ยท Other
- ubuntu noble: manpages-posix-dev 2017a-2 ยท Other
- ubuntu resolute: manpages-posix-dev 2017a-2build1 ยท Other
- ubuntu stonking: manpages-posix-dev 2017a-2.1 ยท Other
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms