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