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

  man pages->Tru64 Unix man pages -> setlocale (3)              
Title
Content
Arch
Section
 

setlocale(3)

Contents


NAME    [Toc]    [Back]

       setlocale - Change or queries the program's current locale

SYNOPSIS    [Toc]    [Back]

       #include <locale.h>

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

LIBRARY    [Toc]    [Back]

       Standard C Library (libc)

STANDARDS    [Toc]    [Back]

       Interfaces documented on this reference  page  conform  to
       industry standards as follows:

       setlocale(): XSH5.0

       Refer to the standards(5) reference page for more information
 about industry standards and associated tags.

PARAMETERS    [Toc]    [Back]

       Specifies the category of the locale to set or query.  The
       category can be LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES,
       LC_MONETARY, LC_NUMERIC, or LC_TIME.  Points to  a  string
       that specifies the locale.

DESCRIPTION    [Toc]    [Back]

       The  setlocale()  function sets or queries the appropriate
       portion of the program's locale as specified by the  category
 and locale parameters. The LC_ALL value for the category
 parameter names the entire locale; the  other  values
       name  only  a  portion  of the program locale, as follows:
       Affects the behavior of collation  functions  and  regular
       expressions.   Affects the behavior of character classification
 functions, character conversion functions, and regular
  expressions.   Affects  the language used to display
       application program and utilities messages (when  translations
  of  the  messages  are  available)  and the strings
       expected as affirmative and negative  responses.   Affects
       the  behavior  of  functions  that handle monetary values.
       Affects the radix character for the formatted input/output
       functions  and  the  string conversion functions.  Affects
       the behavior of the time conversion functions.

       The behavior of the language information function  defined
       in the nl_langinfo() function is also affected by settings
       of the category parameter.

       The locale parameter points to  a  character  string  that
       identifies  the locale that is to be used to set the category
 parameter. The locale parameter  can  specify  either
       the  name  of a locale, such as fr_CA.ISO8859-1, or one of
       the following: Sets the locale to be the minimal  environment
  for  C-language  translation.  If setlocale() is not
       invoked, the C locale is the default. Operational behavior
       within  the C locale is defined separately for each interface
 function that  is  affected  by  the  locale  string.
       Equivalent  to C.  Specifies that the locale should be set
       based on the user's current values for the locale environment
  variables.   Queries  the  program's  current locale
       setting and returns the  name  of  the  locale;  does  not
       change the current setting.

       If  the  locale parameter is set to the empty string (""),
       setlocale() checks the user's environment variables in the
       following  order:  First it checks the value of the LC_ALL
       environment variable. If it is set, setlocale()  sets  the
       specified  category  of  the  international environment to
       that value and returns the  string  corresponding  to  the
       locale  set  (that  is, the value of the environment variable,
 not "", the null string).  If the environment  variable
 LC_ALL is not set or is set to the empty string, setlocale()
 next checks the corresponding  environment  variable
  for the category specified. If the environment variable
 for the category is set, setlocale() sets the  specified
  category  of  the  international environment to that
       value.  If the environment variable corresponding  to  the
       specified  category  is  not  set  or  is set to the empty
       string, then setlocale() checks the LANG environment variable.
 If the LANG environment variable is set, then setlocale()
 sets the category to the locale  specified  by  the
       LANG  environment  variable.  Lastly, if the LANG environment
 variable is not set or is set to  the  empty  string,
       the  setlocale()  function  sets the category to the POSIX
       (C) locale.

       If the locale parameter is a pointer to NULL,  the  setlocale()
  function returns the name of the program's current
       locale for the specified category but does not change  the
       locale.

       If  the locale specified by the locale parameter or by the
       environment variable is  invalid,  setlocale()  returns  a
       null pointer and does not change the program's locale.

NOTES    [Toc]    [Back]

       There  is only one locale per process and the locale state
       is common to all threads within that process. Because setlocale()
  modifies  a process global state without locking
       code, the function call  is  not  threadsafe.  A  threaded
       application  should only call setlocale() in the main part
       of the application before any threads are created.

       If a call  to  setlocale()  changes  the  setting  of  the
       LC_MESSAGES  category, this operation has no effect on any
       message catalogs that are currently open.

RETURN VALUES    [Toc]    [Back]

       If the setlocale() function succeeds in setting  the  program's
  locale  to the one specified by the locale parameter,
 the function returns the string associated  with  the
       specified category parameter for the new locale. Note that
       the locale parameter can specify the locale  name  explicitly
 or, if locale is an empty string, the locale is specified
 by the value of the corresponding environment  variable.
 If the setlocale() function cannot set the program's
       locale as requested, the function returns a  null  pointer
       and leaves the program's locale unchanged.

       If  the  category  parameter  has  a  value of LC_ALL, the
       return value is a series  of  locale  names  separated  by
       spaces.  The  locale names correspond to the categories in
       the  following  order:  LC_COLLATE  LC_CTYPE   LC_MONETARY
       LC_NUMERIC LC_TIME LC_MESSAGES

       If the locale parameter is a null pointer, the setlocale()
       function returns the string associated with  the  category
       parameter for the program's current locale, and leaves the
       program's locale unchanged.

       The string returned by the setlocale()  function  is  such
       that a subsequent call with that string and its associated
       category restores that part of the program's  locale.  The
       string  returned  must not be modified by the program, but
       is overwritten by a subsequent  call  to  the  setlocale()
       function.

EXAMPLES    [Toc]    [Back]

       The  following example sets all categories in the international
 environment based on the user's  environment  variables:


              (void)setlocale (LC_ALL, );

              To  satisfy  this request, the setlocale() function
              first checks all the environment variables.  If any
              environment   variable   is   invalid,  setlocale()
              returns a null pointer and the international  environment
  is  not  changed by this function call. If
              all the relevant environment variables  are  valid,
              setlocale()  sets  the international environment to
              reflect the values of  the  environment  variables.
              The  following  example sets a specific category in
              the  international  environment  to   an   explicit
              locale.

              (void)setlocale(LC_MESSAGES,"fr_FR.ISO8859-1"); The
              following subroutine queries and saves the  current
              program  locale, then explicitly sets the locale to
              the C locale, performs some  operations  in  the  C
              locale,  and  finally,  restores  the locale to one
              saved. The main program typically uses  setlocale()
              to set the program's locale to the one specified by
              the user's environment. However,  if  a  subroutine
              needs  to execute in a specific locale, the subroutine
 must save and later restore the  setting  made
              by the main program.

              #include <locale.h> #include <string.h>

              void Do_stuff(void) {      char *test_l, *saved_l;


                   test_l=setlocale(LC_ALL,NULL);
                   saved_l=strdup(test_l);


                   test_l=setlocale(LC_ALL,"C");      /*  Perform
              operations in the C locale */


                   /*    Restore    the    original   locale   */
                   test_l=setlocale(LC_ALL,saved_l);      return;

              }







SEE ALSO    [Toc]    [Back]

      
      
       Functions:  atof(3),  catclose(3), catgets(3), catopen(3),
       ctype(3),   localeconv(3),   nl_langinfo(3),    printf(3),
       scanf(3),  strfmon(3),  strftime(3), string(3), wctype(3),
       wprintf(3), wscanf(3)

       Files: locale(4)

       Others: i18n_intro(5), l10n_intro(5), standards(5)

       Writing Software for the International Market



                                                     setlocale(3)
[ Back ]
 Similar pages
Name OS Title
setlocale Linux set the current locale.
strcoll Linux compare two strings using the current locale
strxfrm Tru64 Transforms string for collation in current locale
MB_CUR_MAX Linux maximum length of a multibyte character in the current locale
wcsxfrm Tru64 Transform wide-character strings for collation in the current locale
nl_langinfo Tru64 Return language or cultural data defined 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
dxchpwd Tru64 Create or change password program
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service