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);
Descriptionsetlocale 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.  ("" 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.