Up: Locale


9.1 setlocale, localeconv—select or query locale

Synopsis

     #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.