SETLOCALE(3)

NAME
setlocale - set the current locale.

SYNOPSIS
#include <locale.h>

char *setlocale(int category, const char * locale);

DESCRIPTION
The setlocale() function is used to set or query the program's current locale. If locale is "C" or "POSIX", the current locale is set to the portable locale.

If locale is "", the locale is set to the default locale which is selected from the environment variable LANG.

On startup of the main program, the portable "C" locale is selected as default.

The argument category determines which functions are influenced by the new locale:

LC_ALL
    for all of the locale.

LC_COLLATE
    for the functions strcoll() and strxfrm().

LC_CTYPE
    for the character classification and conversion routines.

LC_MONETARY
    for localeconv().

LC_NUMERIC
    for the decimal character.

LC_TIME
    for strftime(). NULL if the request cannot not be honored. This string may be allocated in static storage.

A program may be made portable to all locales by calling setlocale(LC_ALL, "" ) after program initialization, by using the values returned from a localeconv() call for locale - dependent information and by using strcoll() or strxfrm() to compare strings.

CONFORMS TO
ANSI C, POSIX.1

BUGS
At the moment, the only supported locales are the portable "C" and "POSIX" locales, which makes calling setlocale() almost useless. Support for other locales will be there Real Soon Now.

The printf() family of functions may or may not honor the current locale.

SEE ALSO
locale(1), localedef(1), strcoll(3), isalpha(3), localeconv(3), strftime(3), locale(7)