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); } |
大多数程序不需要此功能。