Up: Locale
setlocale, localeconv—select or query locale #include <locale.h>
char *setlocale(int category, const char *locale);
lconv *localeconv(void);
char *_setlocale_r(void *reent,
int category, const char *locale);
lconv *_localeconv_r(void *reent);
Description
setlocale is the facility defined by ANSI C to condition the
execution environment for international collating and formatting
information; localeconv reports on the settings of the current
locale.
This is a minimal implementation, supporting only the required "C"
value for locale; strings representing other locales are not
honored unless _MB_CAPABLE is defined in which case three new
extensions are allowed for LC_CTYPE or LC_MESSAGES only: "C-JIS",
"C-EUCJP", "C-SJIS", or "C-ISO-8859-1". ("" is
also accepted; it represents the default locale
for an implementation, here equivalent to "C".)
If you use NULL as the locale argument, setlocale returns
a pointer to the string representing the current locale (always
"C" in this implementation). The acceptable values for
category are defined in `locale.h' as macros beginning with
"LC_", but this implementation does not check the values you pass
in the category argument.
localeconv returns a pointer to a structure (also defined in
`locale.h') describing the locale-specific conventions currently
in effect.
_localeconv_r and _setlocale_r are reentrant versions of
localeconv and setlocale respectively. The extra argument
reent is a pointer to a reentrancy structure.
Returns
setlocale returns either a pointer to a string naming the locale
currently in effect (always "C" for this implementation, or, if
the locale request cannot be honored, NULL.
localeconv returns a pointer to a structure of type lconv,
which describes the formatting and collating conventions in effect (in
this implementation, always those of the C locale).
Portability
ANSI C requires setlocale, but the only locale required across all
implementations is the C locale.
No supporting OS subroutines are required.