*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Linux man pages -> setlocale (3)              



NAME    [Toc]    [Back]

       setlocale - set the current locale.

SYNOPSIS    [Toc]    [Back]

       #include <locale.h>

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

DESCRIPTION    [Toc]    [Back]

       The  setlocale() function is used to set or query the program's current

       If locale is not NULL, the program's current locale is modified according
  to the arguments.  The argument category determines which parts of
       the program's current locale should be modified.

       LC_ALL for all of the locale.

       LC_COLLATE    [Toc]    [Back]
	      for regular expression matching (it determines  the  meaning  of
	      range expressions and equivalence classes) and string collation.

       LC_CTYPE    [Toc]    [Back]
	      for regular expression matching, character classification,  conversion,
	case-sensitive	comparison,  and  wide character functions.

       LC_MESSAGES    [Toc]    [Back]
	      for localizable natural-language messages.

       LC_MONETARY    [Toc]    [Back]
	      for monetary formatting.

       LC_NUMERIC    [Toc]    [Back]
	      for number formatting (such as the decimal point and  the  thousands

       LC_TIME    [Toc]    [Back]
	      for time and date formatting.

       The  argument  locale is a pointer to a character string containing the
       required setting of category.  Such a string  is  either  a  well-known
       constant  like "C" or "da_DK" (see below), or an opaque string that was
       returned by another call of setlocale.

       If locale is "", each part of the locale that should be modified is set
       according  to the environment variables. The details are implementation
       dependent.  For glibc, first (regardless of category), the  environment
       variable  LC_ALL  is  inspected, next the environment variable with the
       same name as the category (LC_COLLATE, LC_CTYPE, LC_MESSAGES,  LC_MONETARY,
  LC_NUMERIC,  LC_TIME) and finally the environment variable LANG.
       The first existing environment variable is used.  If its value is not a
       valid  locale  specification,  the  locale  is unchanged, and setlocale
       returns NULL.

       The locale "C" or "POSIX" is a portable locale; its LC_CTYPE part  corresponds
 to the 7-bit ASCII character set.

       A  locale  name	is  typically  of the form language[_territory][.code-
       set][@modifier], where language is an ISO 639 language code,  territory
       is an ISO 3166 country code, and codeset is a character set or encoding
       identifier like ISO-8859-1 or UTF-8.   For  a  list  of	all  supported
       locales, try "locale -a", cf. locale(1).

       If locale is NULL, the current locale is only queried, not modified.

       On  startup of the main program, the portable "C" locale is selected as
       default.  A program may be made portable to all locales by calling set-
       locale(LC_ALL,  "" ) after program  initialization, by using the values
       returned from a localeconv() call for locale -  dependent  information,
       by  using the multi-byte and wide character functions for text processing
 if MB_CUR_MAX > 1, and by using strcoll(), wcscoll() or  strxfrm(),
       wcsxfrm() to compare strings.

RETURN VALUE    [Toc]    [Back]

       A  successful  call to setlocale() returns an opaque string that corresponds
 to the locale set.  This string may be allocated in static storage.
   The  string  returned  is  such that a subsequent call with that
       string and its associated  category  will  restore  that  part  of  the
       process's  locale.  The	return	value is NULL if the request cannot be

CONFORMING TO    [Toc]    [Back]

       ANSI C, POSIX.1

NOTES    [Toc]    [Back]

       Linux (that is,	GNU  libc)  supports  the  portable  locales  "C"  and
       "POSIX".   In  the good old days there used to be support 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.

SEE ALSO    [Toc]    [Back]

       locale(1),  localedef(1),  strcoll(3), isalpha(3), localeconv(3), strf-
       time(3), charsets(4), locale(7)

GNU				  1999-07-04			  SETLOCALE(3)
[ Back ]
 Similar pages
Name OS Title
strcoll Linux compare two strings using the current locale
strxfrm Tru64 Transforms string for collation in current locale
setlocale Tru64 Change or queries the program's current locale
MB_CUR_MAX Linux maximum length of a multibyte character in the current locale
nl_langinfo Tru64 Return language or cultural data defined in the current locale
wcsxfrm Tru64 Transform wide-character strings for collation in the current locale
towctrans Tru64 Convert a wide character according to a property defined in the current locale
I18N::Collate IRIX compare 8-bit scalar data according to the current locale *** WARNING: starting from the Perl version 5.003_06
localedef Tru64 Builds a locale from locale and character map source files
XmStringCreateLocalized Tru64 A compound string function that creates a compound string in the current locale
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service