Computer Science
SETLOCALE(3) Linux Programmer's Manual 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 pro-
gram'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().
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.
RETURN VALUE
A successful call to setlocale() returns a string that
corresponds to the locale set. This string may be allo-
cated in static storage. The string returned is such that
a subsequent call with that string and its associated cat-
egory will restore that part of the process's locale. The
return value is NULL if the request cannot be honored.
CONFORMING TO
ANSI C, POSIX.1
Linux (that is, libc) supports the portable locales "C"
and "POSIX". In the good old days there used to be sup-
port for the European Latin-1 "ISO-8859-1" locale (e.g. in
libc-4.5.21 and libc-4.6.27), and the Russian "KOI-8"
(more precisely, "koi-8r") locale (e.g. in libc-4.6.27),
so that having an environment variable LC_CTYPE=ISO-8859-1
sufficed to make isprint() return the right answer. These
days non-English speaking Europeans have to work a bit
harder, and must install actual locale files.
The printf() family of functions may or may not honor the
current locale.
SEE ALSO
locale(1), localedef(1), strcoll(3), isalpha(3), locale-
conv(3), strftime(3), locale(7)
GNU April 18, 1993 1
Back to the index