setlocale(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

setlocale(3c)

setlocale(3C)            Standard C Library Functions            setlocale(3C)

NAME
       setlocale - modify and query global locale

SYNOPSIS
       #include <locale.h>

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

DESCRIPTION
       The  setlocale()  function  selects the appropriate piece of the global
       locale for the process as specified by the category  and  locale  argu‐
       ments.  The  category argument may have the following values: LC_CTYPE,
       LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, and  LC_ALL.
       These  names  are defined in the <locale.h> header. The LC_ALL variable
       names all of the global locale categories.


       The LC_CTYPE variable affects the behavior of character handling  func‐
       tions  such  as  isdigit(3C)  and  tolower(3C), and multibyte character
       functions such as mbtowc(3C) and wctomb(3C).


       The LC_NUMERIC variable affects the decimal point character  and  thou‐
       sands  separator character for the formatted input/output functions and
       string conversion functions.


       The LC_TIME variable affects the date and time format as  delivered  by
       ascftime(3C), cftime(3C), getdate(3C), strftime(3C), and strptime(3C).


       The  LC_COLLATE  variable  affects the sort order produced by collating
       functions such as strcoll(3C) and strxfrm(3C).


       The LC_MONETARY variable affects the monetary formatted information re‐
       turned by localeconv(3C).


       The LC_MESSAGES variable affects the behavior  of  messaging  functions
       such as dgettext(3C), gettext(3C), and gettxt(3C).


       A  value of "C" for locale specifies the traditional UNIX system behav‐
       ior. At program startup, the equivalent of

         setlocale(LC_ALL, "C")



       is executed. This has the effect of initializing global locale for each
       category to the locale described by the environment "C".


       A value of "" for locale specifies that the  global  locale  should  be
       taken  from  environment  variables. The order in which the environment
       variables are checked for the various categories is given below:

       tab()  box;  lw(1.37i)  |lw(1.37i)  |lw(1.37i)   |lw(1.37i)   lw(1.37i)
       |lw(1.37i)  |lw(1.37i) |lw(1.37i) Category1st Env Var2nd Env Var3rd Env
       Var _ LC_CTYPE:LC_ALLLC_CTYPELANG _  LC_COLLATE:LC_ALLLC_COLLATELANG  _
       LC_TIME:LC_ALLLC_TIMELANG  _ LC_NUMERIC:LC_ALLLC_NUMERICLANG _ LC_MONE‐
       TARY:LC_ALLLC_MONETARYLANG _ LC_MESSAGES:LC_ALLLC_MESSAGESLANG



       If a pointer to a string is given for locale, setlocale()  attempts  to
       set  the global locale for the given category to locale. If setlocale()
       succeeds, locale is returned. If setlocale() fails, a null  pointer  is
       returned and the global locale is not changed.


       For  category  LC_ALL, the behavior is slightly different. If a pointer
       to a string is given for locale and LC_ALL is given for category,  set‐
       locale()  attempts  to  set the global locale for all the categories to
       locale. The locale may be a simple locale, consisting of a  single  lo‐
       cale,  or a composite locale. If the locales for all the categories are
       the same after all the attempted locale changes, setlocale()  will  re‐
       turn  a  pointer  to the common simple locale. If there is a mixture of
       locales among the categories, setlocale() will return a  composite  lo‐
       cale.


       A  null  pointer  for  locale  directs setlocale() to query the current
       global locale setting and return a pointer  to  the  string  associated
       with  the  category  for  the current global locale. If the category is
       LC_ALL and the current global locale is a composite locale, the  string
       will  have  locale names for LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE,
       LC_MONETARY, and LC_MESSAGES categories, and in  that  order,  concate‐
       nated  together  where  each  category's locale name is prefixed with a
       slash ('/' or 0x2F) character, for instance,  "/en_US.UTF-8/C/C/C/C/C".
       Otherwise, the string will have a locale name such as "en_US.UTF-8".

RETURN VALUES
       Upon  successful  completion, setlocale() returns the string associated
       with the specified category for the new locale. Otherwise,  setlocale()
       returns a null pointer and the global locale is not changed.


       A null pointer for locale causes setlocale() to return a pointer to the
       string  associated with the category for the current global locale. The
       global locale is not changed.


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

ERRORS
       No errors are defined.

FILES
       /usr/lib/locale/locale    locale database directory for locale


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ CSIEnabled _ Interface StabilityCommitted _ MT-LevelMT-
       Safe with exceptions _ StandardSee standards(7).


SEE ALSO
       locale(1),  ctype(3C), duplocale(3C), freelocale(3C), getdate(3C), get‐
       text(3C), gettxt(3C), isdigit(3C), localeconv(3C), locale_fallback(3C),
       localelist(3C),  localelistfree(3C),  mbtowc(3C),  newlocale(3C),  str‐
       coll(3C),  strftime(3C), strptime(3C), strxfrm(3C), tolower(3C), uselo‐
       cale(3C), wctomb(3C), libc(3LIB), attributes(7), environ(7), locale(7),
       locale_alias(7), standards(7)


       Managing System Locales in Internationalizing and  Localizing  Applica‐
       tions in Oracle Solaris

NOTES
       It  is unsafe for any thread to change global locale (by calling setlo‐
       cale() with a non-null locale argument) in a multithreaded  application
       while any other thread in the application is using any locale-sensitive
       routine. To change global locale in a multithreaded application, setlo‐
       cale() should be called prior to using any locale-sensitive routine. To
       change  current locale, uselocale() should be called. Using setlocale()
       to query the current global locale is safe and can be used anywhere  in
       a multithreaded application.


       It  is the user's responsibility to ensure that mixed locale categories
       are compatible. For example, setting LC_CTYPE=C and  LC_TIME=ja  (where
       ja  indicates  Japanese) will not work, because Japanese time cannot be
       represented in the "C" locale's ASCII codeset.


       To get the list of installed locales, instead  of  calling  setlocale()
       over a list of potentially installed locales and checking on the return
       values,  using localelist(3C) is recommended. The localelist() function
       does not switch locales and it is more efficient, faster, and fully MT-
       safe.


       If a string pointed by locale argument has a locale name that does  not
       yield  a  usable  locale  in the current system but it is a locale name
       alias that is accepted and supported, such name is internally mapped to
       a corresponding canonical locale name which is  then  used  to  locate,
       load,  and  return  the actual locale defined in the current system. If
       successful, the return value of the function is the locale name  alias.
       If  there is no actual locale for the canonical locale name, obviously,
       the setlocale() will fail.  The  accepted  and  supported  locale  name
       aliases are shown in locale_alias(7).

HISTORY
       The  setlocale()  function  has been included in all Sun and Oracle re‐
       leases of Solaris.

Oracle Solaris 11.4               25 Nov 2024                    setlocale(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3