2.7.11. setlocale()

选择 categorylocale 参数指定的相应区域设置。

语法

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

用法

setlocale() 函数用于更改或查询部分或全部当前区域设置。 区域设置类别介绍了每个 category 自变量值产生的影响。 locale"C" 指定 C 转换的最低环境。 locale 的空字符串值 "" 指定实现定义的本机环境。 在程序启动时,将执行 setlocale(LC_ALL, "C") 的等效函数。

区域设置类别

category 的值是:

LC_COLLATE

影响 strcoll() 的行为。

LC_CTYPE

影响字符处理函数的行为。

LC_MONETARY

影响 localeconv() 返回的货币格式信息。

LC_NUMERIC

影响设置格式的输入/输出函数、字符串转换函数的小数点字符以及 localeconv() 返回的数字格式信息。

LC_TIME

可能会影响 strftime() 的行为。 对于当前支持的区域设置,此选项无效。

LC_ALL

影响所有区域设置类别。 这是所有区域设置类别的按位“或”运算。

返回值

如果为 locale 分配了一个指向字符串的指针,并且选择的内容有效,则会返回与新区域设置的指定类别相关联的字符串。 如果不支持选择的内容,则会返回空指针,并且不会更改区域设置。

如果 locale 为空指针,则会导致返回与当前区域设置类别相关联的字符串,并且不会更改区域设置。

如果 categoryLC_ALL,并且最近一次成功的区域设置设置调用使用的类别不是 LC_ALL,则可能会返回一个复合字符串。 在后续调用中与关联类别一起使用时返回的字符串将恢复该程序区域设置部分。 程序不会修改返回的字符串,但随后对 setlocale() 的调用可能会覆盖该字符串。

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0349AC
Non-Confidential