Oracle® Solaris Studio 12.4:C 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

6.8.2 setlocale() 函数

setlocale() 函数是指向程序语言环境的接口。 使用调用国家惯例的任何程序在程序执行路径的开头部分应发出如下例所示的一个调用。

#include <locale.h>
/*...*/
setlocale(LC_ALL, "");

该调用导致程序的当前语言环境更改为相应的本地版本,因为 LC_ALL 是指定整个语言环境而不是某个种类的宏。标准种类包括:

LC_COLLATE

排序信息

LC_CTYPE

字符分类信息

LC_MONETARY

货币打印信息

LC_NUMERIC

数字打印信息

LC_TIME

日期和时间打印信息

这些宏中的任何宏均可作为 setlocale() 的第一个参数传递以指定该类别。

setlocale() 函数返回给定种类的当前语言环境的名称(或 LC_ALL),当其第二个参数为空指针时,它仅用于查询。因此,类似如下示例的代码可用于在有限持续时间内更改语言环境或其中一部分:

#include <locale.h>
/*...*/
char *oloc;
/*...*/
oloc = setlocale(LC_category, NULL);
if (setlocale(LC_category, "new") != 0)
{
        /* use temporarily changed locale */
    (void)setlocale(LC_category, oloc);
}

大多数程序不需要此功能。