The setlocale() function
The setlocale()
function is the interface to the program's locale.
In general,
any program that requires the invocation country's conventions
should place a call such as:
   #include <locale.h>
   /
...
/
   setlocale(LC_ALL, "");
early in the program's execution path.
This causes the program's current locale to change
to the appropriate local version
(if possible),
since LC_ALL
is the macro that specifies the entire locale instead of one category.
The following are the standard categories:
| 
LC_COLLATE
 | 
sorting information
 | 
| 
LC_CTYPE
 | 
character classification information
 | 
| 
LC_MONETARY
 | 
currency printing information
 | 
| 
LC_NUMERIC
 | 
numeric printing information
 | 
| 
LC_TIME 
 | 
date and time printing information
 | 
| 
LC_MESSAGES
 | 
message language information
 | 
Any of these macros can be passed as the first argument to
setlocale() to specify just that category.
The setlocale()
function returns the name of the current locale
for a given category
(or LC_ALL)
and serves in an inquiry-only capacity
when its second argument is a null pointer.
Thus, code along the lines of the following
can be used to change
the locale or a portion thereof for a limited duration:
   #include <locale.h>
   /
...
/
   char 
oloc;
   /
...
/
   oloc = setlocale(LC_cat, NULL);
   if (setlocale(LC_cat, "new") != 0)
   {
      /
 use temporarily changed locale 
/
      (void)setlocale(LC_cat, oloc);
   }
Most programs will never need this capability.
Next topic: 
Changed functions
Previous topic: 
Locales
© 2003 Caldera International, Inc.  All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003