2013-01-08 74 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信息和診斷消息的格式和 交互式響應。