2013-01-08 73 views
1

newlocale(3)部分说,该名男子页:newlocale(3)的掩码位是什么意思,具体是什么意思?

The mask is the logical OR of the following: 

LC_COLLATE_MASK Collation 
LC_CTYPE_MASK  Character type 
LC_MESSAGES_MASK Messages 
LC_MONETARY_MASK Monetary 
LC_NUMERIC_MASK Numeric 
LC_TIME_MASK  Time 
LC_ALL_MASK  The logical OR of all of the above 

,但它并没有说什么每个屏蔽位的实际意味着明确。在我的情况下,我需要AM_STR,PM_STR,月份缩写(ABMON_1,...),全月份名称(MON_1,...),工作日缩写(ABDAY_1,...)以及完整的工作日名称( DAY_1,...)。

作为一个有教养的猜测,我认为我需要LC_MESSAGES_MASK - 但我也需要LC_TIME_MASK

+0

你试过了吗? –

+1

@CarlNorum:是的,我显然*做*需要'LC_TIME_MASK'。但是我想确保这确实是所有平台上的正确答案(或应该是),而不是我的平台上可能存在的特定问题(发生在我的Mac OS X上)。 –

+0

你关心哪些其他平台?据我所知,Linux没有'newlocale(3)'。 –

回答

1

您需要LC_TIME_MASK;满足您的要求,您不需要LC_MESSAGES_MASK

LC_MESSAGES控制错误消息,而不是时间格式。要查看诸如LC_TIME之类的“未屏蔽”名称,请参阅手册页setlocale(3)。它们是标准C(尽管链接到的POSIX页面包含一些扩展 - 特别是"POSIX"区域设置)。

0

可以找到的区域设置在POSIX的详细描述,here

不同类型的定义

  1. LC_CTYPE 字符分类和大小写转换。
  2. LC_COLLATE 整理顺序。
  3. LC_MONETARY货币格式。
  4. LC_NUMERIC 数字非货币格式。
  5. LC_TIME日期和时间格式。
  6. LC_MESSAGES信息和诊断消息的格式和 交互式响应。