Provided by: manpages-zh_1.5.1-1_all bug

NAME

       setlocale - 設置當前的區域選項

` (SYNOPSIS)
       #include <locale.h>

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

yz (DESCRIPTION)
       setlocale() 函數 用來 設置 或者 查詢 程式 當前 的 區域選項.

       如果  locale  不是  NULL,  程式  就會  根據  參數 更改 相應的 區域選項.
       category 參數 指定 區域選項 的 一部分 需n 更改.

       LC_ALL 代表 所有 部分.

       LC_COLLATE
              代表 正則 表達式 匹配 (和  S圍  表達式[range  expressions]  以及
              字符類[classes] 有關系) 和 字符串 排序.

       LC_CTYPE
              代表  正則  表達式 匹配, 字符類(character classification), 轉換,
              區分大小寫 的 比較, 以及 寬字符 函數.

       LC_MESSAGES
              代表 可以 本地化的 消息 (自然語言).

       LC_MONETARY
              代表 貨幣 格式.

       LC_NUMERIC
              代表 數字 格式 (比如 小數點 和 千位分組符).

       LC_TIME
              代表 時間 和 日期 格式.

       locale 參數 是 一 指向 字符串的 指針.  此  字符串  為  category  需n的
       設置. 此 字符串 可以是 一 眾所周知 的 區域選項 常量, 如 "C" 或 "da_DK"
       (見下), 也可以是 另外 一 setlocale 調用 返回 的 字符串.

       如果 locale"", 需n 更改 的 部分 會根據  環境變量  做  相應的  設置.
       具體的  和  實現  有關. 對於 glibc 來說, 漸 查看 環境變量 LC_ALL (不管
       category),M嶈d看Mcategory   (LC_COLLATE,   LC_CTYPE,    LC_MESSAGES,
       LC_MONETARY,  LC_NUMERIC,  LC_TIME) 同名的 環境變量, 最後 查看 環境變量
       LANG. 以 先查到 的 環境變量 為準. 如果 其 不是 一 有效  的  區域選項,
       區域選項 將 不會改變, setlocale 會 返回 NULL.

       標準  區域選項 "C""POSIX" 是 可移植的; 它的 LC_CTYPE 部分 對應的 是
       7 位的 ASCII 字符集.

       一        典型的        區域選項        有        如下的         格式:
       language[_territory][.codeset][@modifier], 其中 language 是 一 ISO 639
       語言 代碼, territory 是 一 ISO 3166  國家  代碼,  codeset  是  一  像
       ISO-8859-1  或者  UTF-8 的 字符集 或者 編碼 標識符. 用 "locale -a", cf.
       locale(1) 可以 獲得 一 系統 支持的 區域選項 的 列表.

       如果 localeNULL, 意味著 只是 查詢 當前 的 區域選項 而不 更改它.

       當 main 程式 開始的 時 可移植的 "C" 區域選項 作為  預設  被設置.  一
       程式  可以  在  初始化  之後  調用 setlocale(LC_ALL, "" ) 函數, 並且 從
       localeconv() 調用 的  返回  中  獲得  和  區域選項  相關的  信息,  如果
       MB_CUR_MAX  >  1 就用 多字節 和 寬字節 函數 來 處理 文本, 用 strcoll(),
       wcscoll() 或者 strxfrm(), wcsxfrm() 來 比較 字符串, 這樣 就可以 使 程式
       有 較好的 移植性.

^ (RETURN VALUE)
       一  成左  setlocale()  調用  會 返回 一 表示 當前 區域選項 的 字符串
       (指針). 這 字符串 可能 是在 靜態 存儲區 中 分配  的.  之後  用  相應的
       category  和  這  字符串  作為  參數 再去 調用 這 函數 會 奐s 把 程式
       區域選項 的 相應 部分 恢復. 如果 請求 不能 完成 將會 返回 NULL .

` (CONFORMING TO)
       ANSI C, POSIX.1

`N (NOTES)
       Linux (也就是, GNU libc) 支持 可移植的 "C""POSIX" 區域選項. 在 以前
       它  曾經 支持 歐洲 Latin-1 區域選項 "ISO-8859-1" (比如說 在 libc-4.5.21
       和 libc-4.6.27 中),  和  俄羅斯的  "KOI-8"  (更  準確點  是,  "koi-8r")
       區域選項   (比如   在   libc-4.6.27   中),   所以   設置  一  環境變量
       LC_CTYPE=ISO-8859-1 就 能夠 讓 isprint() 返回 正確的  結果.  現在  不講
       ^語  的  歐洲人  會  比以前  更麻煩 一些, 他 需n 安裝 相應 的 區域選項
       檔案.

 (SEE ALSO)
       locale(1),   localedef(1),   strcoll(3),   isalpha(3),   localeconv(3),
       strftime(3), charsets(4), locale(7)

[]
       <tony_ty@263.net>

[]
       2001/12/2

[inuxanhttp://cmpp.linuxforum.net