NAME
nl_langinfo – language information
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <langinfo.h>
char *
nl_langinfo(nl_item item);
char *
nl_langinfo_l(nl_item item, locale_t loc);
DESCRIPTION
The nl_langinfo() function returns a pointer to a string containing information relevant to the particular language or cultural area defined in the program or thread's locale, or in the case of nl_langinfo_l(), the locale passed as the second argument.
Calls to setlocale() with a category corresponding to the category of item, or to the category LC_ALL, may overwrite the buffer pointed to by the return value.
The manifest constant names and values of item are defined in ⟨langinfo.h⟩.
The following standard constants are recognized:
| Constant | Category | Description |
| CODESET | LC_CTYPE | codeset name |
| D_T_FMT | LC_TIME | string for formatting date and time |
| D_FMT | LC_TIME | date format string |
| T_FMT | LC_TIME | time format string |
| T_FMT_AMPM | LC_TIME | a.m. or p.m. time format string |
| AM_STR | LC_TIME | ante-meridiem affix |
| PM_STR | LC_TIME | post-meridiem affix |
| DAY_1 | LC_TIME | name of the first day of the week |
| DAY_2 | LC_TIME | name of the second day of the week |
| DAY_3 | LC_TIME | name of the third day of the week |
| DAY_4 | LC_TIME | name of the fourth day of the week |
| DAY_5 | LC_TIME | name of the fifth day of the week |
| DAY_6 | LC_TIME | name of the sixth day of the week |
| DAY_7 | LC_TIME | name of the seventh day of the week |
| ABDAY_1 | LC_TIME | abbreviated name of the first day of the week |
| ABDAY_2 | LC_TIME | abbreviated name of the second day of the week |
| ABDAY_3 | LC_TIME | abbreviated name of the third day of the week |
| ABDAY_4 | LC_TIME | abbreviated name of the fourth day of the week |
| ABDAY_5 | LC_TIME | abbreviated name of the fifth day of the week |
| ABDAY_6 | LC_TIME | abbreviated name of the sixth day of the week |
| ABDAY_7 | LC_TIME | abbreviated name of the seventh day of the week |
| MON_1 | LC_TIME | name of the first month of the year |
| MON_2 | LC_TIME | name of the second month |
| MON_3 | LC_TIME | name of the third month |
| MON_4 | LC_TIME | name of the fourth month |
| MON_5 | LC_TIME | name of the fifth month |
| MON_6 | LC_TIME | name of the sixth month |
| MON_7 | LC_TIME | name of the seventh month |
| MON_8 | LC_TIME | name of the eighth month |
| MON_9 | LC_TIME | name of the ninth month |
| MON_10 | LC_TIME | name of the tenth month |
| MON_11 | LC_TIME | name of the eleventh month |
| MON_12 | LC_TIME | name of the twelfth month |
| ABMON_1 | LC_TIME | abbreviated name of the first month |
| ABMON_2 | LC_TIME | abbreviated name of the second month |
| ABMON_3 | LC_TIME | abbreviated name of the third month |
| ABMON_4 | LC_TIME | abbreviated name of the fourth month |
| ABMON_5 | LC_TIME | abbreviated name of the fifth month |
| ABMON_6 | LC_TIME | abbreviated name of the sixth month |
| ABMON_7 | LC_TIME | abbreviated name of the seventh month |
| ABMON_8 | LC_TIME | abbreviated name of the eighth month |
| ABMON_9 | LC_TIME | abbreviated name of the ninth month |
| ABMON_10 | LC_TIME | abbreviated name of the tenth month |
| ABMON_11 | LC_TIME | abbreviated name of the eleventh month |
| ABMON_12 | LC_TIME | abbreviated name of the twelfth month |
| ERA | LC_TIME | era description segments |
| ERA_D_FMT | LC_TIME | era date format string |
| ERA_D_T_FMT | LC_TIME | era date and time format string |
| ERA_T_FMT | LC_TIME | era time format string |
| ALT_DIGITS | LC_TIME | alternative symbols for digits |
| RADIXCHAR | LC_NUMERIC | radix character |
| THOUSEP | LC_NUMERIC | separator for thousands |
| YESEXPR | LC_MESSAGES | affirmative response extended regular |
| NOEXPR | LC_MESSAGES | negative response extended regular expression |
| CRNCYSTR | LC_MONETARY | local currency symbol, preceded by '-' if the |
The following non-standard FreeBSD extensions are recognized:
| Constant | Category | Description |
| D_MD_ORDER | LC_TIME | month/day order |
| ALTMON_1 | LC_TIME | standalone name of the first month |
| ALTMON_2 | LC_TIME | standalone name of the second month |
| ALTMON_3 | LC_TIME | standalone name of the third month |
| ALTMON_4 | LC_TIME | standalone name of the fourth month |
| ALTMON_5 | LC_TIME | standalone name of the fifth month |
| ALTMON_6 | LC_TIME | standalone name of the sixth month |
| ALTMON_7 | LC_TIME | standalone name of the seventh month |
| ALTMON_8 | LC_TIME | standalone name of the eighth month |
| ALTMON_9 | LC_TIME | standalone name of the ninth month |
| ALTMON_10 | LC_TIME | standalone name of the tenth month |
| ALTMON_11 | LC_TIME | standalone name of the eleventh month |
| ALTMON_12 | LC_TIME | standalone name of the twelfth month |
| YESSTR | LC_MESSAGES | affirmative response string |
| NOSTR | LC_MESSAGES | negative response string |
RETURN VALUES
In a locale where langinfo data is not defined, nl_langinfo() returns a pointer to the corresponding string in the POSIX locale. nl_langinfo_l() returns the same values as nl_langinfo(). In all locales, nl_langinfo() returns a pointer to an empty string if item contains an invalid setting.
EXAMPLES
For example:
nl_langinfo(ABDAY_1)
would return a pointer to the string "Dom" if the identified language was Portuguese, and "Sun" if the identified language was English.
SEE ALSO
STANDARDS
The nl_langinfo() function conforms to Version 2 of the Single UNIX Specification (“SUSv2”). The nl_langinfo_l() function conforms to IEEE Std 1003.1-2008 (“POSIX.1”).
HISTORY
The nl_langinfo() function first appeared in FreeBSD 4.6.