setlocale() 函数是指向程序语言环境的接口。 使用调用国家惯例的任何程序在程序执行路径的开头部分应发出如下例所示的一个调用。
#include <locale.h> /*...*/ setlocale(LC_ALL, "");
该调用导致程序的当前语言环境更改为相应的本地版本,因为 LC_ALL 是指定整个语言环境而不是某个种类的宏。标准种类包括:
排序信息
字符分类信息
货币打印信息
数字打印信息
日期和时间打印信息
这些宏中的任何宏均可作为 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); }
大多数程序不需要此功能。