2 .\" Copyright (c) 2001 Markus Kuhn <mkuhn@acm.org>
3 .\" and Copyright (c) 2015 Sam Varshavchik <mrsam@courier-mta.com>
4 .\" and Copyright (c) 2015 Michael Kerrisk <mtk.manpages@gmail.com>
6 .\" SPDX-License-Identifier: GPL-2.0-or-later
8 .\" References consulted:
10 .\" OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
12 .\" Corrected prototype, 2002-10-18, aeb
14 .TH nl_langinfo 3 (date) "Linux man-pages (unreleased)"
16 nl_langinfo, nl_langinfo_l \- query language and locale information
19 .RI ( libc ", " \-lc )
22 .B #include <langinfo.h>
24 .BI "char *nl_langinfo(nl_item " item );
25 .BI "char *nl_langinfo_l(nl_item " item ", locale_t " locale );
29 Feature Test Macro Requirements for glibc (see
30 .BR feature_test_macros (7)):
36 _POSIX_C_SOURCE >= 200809L
37 glibc 2.23 and earlier:
38 _POSIX_C_SOURCE >= 200112L
45 functions provide access to locale information
46 in a more flexible way than
49 returns a string which is the value corresponding to
50 \fIitem\fP in the program's current global
53 returns a string which is the value corresponding to \fIitem\fP
54 for the locale identified by the locale object \fIlocale\fP,
55 which was previously created by
57 Individual and additional elements of the locale categories can
60 Examples for the locale elements that can be specified in \fIitem\fP
61 using the constants defined in \fI<langinfo.h>\fP are:
63 .BR CODESET \ (LC_CTYPE)
64 Return a string with the name of the character encoding used in the
65 selected locale, such as "UTF-8", "ISO-8859-1", or "ANSI_X3.4-1968"
66 (better known as US-ASCII).
67 This is the same string that you get with
69 For a list of character encoding names,
73 .BR D_T_FMT \ (LC_TIME)
74 Return a string that can be used as a format string for
76 to represent time and date in a locale-specific way
78 conversion specification).
81 Return a string that can be used as a format string for
83 to represent a date in a locale-specific way
85 conversion specification).
88 Return a string that can be used as a format string for
90 to represent a time in a locale-specific way
92 conversion specification).
94 .BR AM_STR \ (LC_TIME)
95 Return a string that represents affix for ante meridiem (before noon, "AM")
100 conversion specification.)
102 .BR PM_STR \ (LC_TIME)
103 Return a string that represents affix for post meridiem (before midnight, "PM")
108 conversion specification.)
110 .BR T_FMT_AMPM \ (LC_TIME)
111 Return a string that can be used as a format string for
113 to represent a time in a.m. or p.m. notation in a locale-specific way
115 conversion specification).
118 Return era description, which contains information about how years are counted
119 and displayed for each era in a locale.
120 Each era description segment shall have the format:
123 .IR direction : offset : start_date : end_date : era_name : era_format
126 according to the definitions below:
131 .RB \[dq] + "\[dq] or a \[dq]" - \[dq]
135 means that years increase from the
143 The epoch year of the
150 .IR yyyy ", " mm ", and " dd
151 are the year, month, and day numbers respectively of the start of the era.
154 The ending date of the era, in the same format as the
156 or one of the two special values
163 The name of the era, corresponding to the
166 conversion specification.
169 The format of the year in the era, corresponding to the
172 conversion specification.
175 Era description segments are separated by semicolons.
176 Most locales do not define this value.
177 Examples of locales that do define this value are the Japanese and Thai
180 .BR ERA_D_T_FMT \ (LC_TIME)
181 Return a string that can be used as a format string for
183 for alternative representation of time and date in a locale-specific way
185 conversion specification).
187 .BR ERA_D_FMT \ (LC_TIME)
188 Return a string that can be used as a format string for
190 for alternative representation of a date in a locale-specific way
192 conversion specification).
194 .BR ERA_T_FMT \ (LC_TIME)
195 Return a string that can be used as a format string for
197 for alternative representation of a time in a locale-specific way
199 conversion specification).
201 .BR DAY_ "{1\[en]7} (LC_TIME)"
202 Return name of the \fIn\fP-th day of the week.
203 [Warning: this follows
204 the US convention DAY_1 = Sunday, not the international convention
205 (ISO 8601) that Monday is the first day of the week.]
209 conversion specification.)
211 .BR ABDAY_ "{1\[en]7} (LC_TIME)"
212 Return abbreviated name of the \fIn\fP-th day of the week.
216 conversion specification.)
218 .BR MON_ "{1\[en]12} (LC_TIME)"
219 Return name of the \fIn\fP-th month.
223 conversion specification.)
225 .BR ABMON_ "{1\[en]12} (LC_TIME)"
226 Return abbreviated name of the \fIn\fP-th month.
230 conversion specification.)
232 .BR RADIXCHAR \ (LC_NUMERIC)
233 Return radix character (decimal dot, decimal comma, etc.).
235 .BR THOUSEP \ (LC_NUMERIC)
236 Return separator character for thousands (groups of three digits).
238 .BR YESEXPR \ (LC_MESSAGES)
239 Return a regular expression that can be used with the
241 function to recognize a positive response to a yes/no question.
243 .BR NOEXPR \ (LC_MESSAGES)
244 Return a regular expression that can be used with the
246 function to recognize a negative response to a yes/no question.
248 .BR CRNCYSTR \ (LC_MONETARY)
249 Return the currency symbol, preceded by "\-" if the symbol should
250 appear before the value, "+" if the symbol should appear after the
251 value, or "." if the symbol should replace the radix character.
253 The above list covers just some examples of items that can be requested.
254 For a more detailed list, consult
255 .IR "The GNU C Library Reference Manual" .
257 On success, these functions return a pointer to a string which
258 is the value corresponding to
260 in the specified locale.
262 If no locale has been selected by
264 for the appropriate category,
266 return a pointer to the corresponding string in the "C" locale.
271 specifies a locale where
275 If \fIitem\fP is not valid, a pointer to an empty string is returned.
277 The pointer returned by these functions may point to static data that
278 may be overwritten, or the pointer itself may be invalidated,
279 by a subsequent call to
281 .BR nl_langinfo_l (),
284 The same statements apply to
286 if the locale object referred to by
288 is freed or modified by
293 POSIX specifies that the application may not modify
294 the string returned by these functions.
296 For an explanation of the terms used in this section, see
302 Interface Attribute Value
307 T} Thread safety MT-Safe locale
318 is the special locale object
320 or is not a valid locale object handle.
322 The following program sets the character type and the numeric locale
323 according to the environment and queries the terminal character set and
326 .\" SRC BEGIN (nl_langinfo.c)
328 #include <langinfo.h>
336 setlocale(LC_CTYPE, "");
337 setlocale(LC_NUMERIC, "");
339 printf("%s\en", nl_langinfo(CODESET));
340 printf("%s\en", nl_langinfo(RADIXCHAR));
353 The GNU C Library Reference Manual