Solaris 9 環境提供兩組 API:
多位元組(檔案程式碼)
寬字元(程序碼)
寬字元程式碼為固定寬度的邏輯實體單位。因此使用多位元組字元時,並不需要維護適當字元界限的記錄。
當程式從檔案中取得輸入時,您可以將檔案的多位元組資料直接用輸入函式轉換成寬字元程序碼,例如fscanf(3S) 和 fwscanf(3S)等函式,或在輸入之後藉由使用轉換函式轉換,例如 mbtowc(3C) 和 mbsrtowcs(3C)。若要將輸出資料從寬字元格式轉換為多位元組字元格式,使用像是fwprintf(3S) 以及fprintf(3S) 的輸出函式,或在輸出之前套用像是 wctomb(3S) 以及wcsrtombs(3S) 的轉換函式。
本章其餘表格將說明包含在 Solaris 9 產品中的國際化 API。
下列表格將說明 libc 的訊息傳送函式 API。
表 2–1 libc中的訊息傳送函式|
程式庫常式 |
說明 |
|---|---|
|
catclose() |
關閉訊息目錄 |
|
catgets() |
讀取程式訊息 |
|
catopen() |
開啟訊息目錄 |
|
dgettext() |
從訊息目錄中取得指定網域的訊息 |
|
dcgettext() |
從訊息目錄中取得指定網域與種類的訊息 |
|
textdomain() |
設定與查詢目前的網域 |
|
bindtextdomain() |
將路徑連結至訊息網域 |
|
gettext() |
從訊息資料庫取回文字串 |
下列表格將說明 libc 的程式碼轉換函式 API。
表 2–2 libc 的程式碼轉換|
程式庫常式 |
說明 |
|---|---|
|
iconv() |
轉換程式碼 |
|
iconv_close() |
取消配置轉換描述元 |
|
iconv_open() |
配置轉換描述元 |
下列表格將說明 libc 的正規表示式 API。
表 2–3 libc的正規表示式|
程式庫常式 |
說明 |
|---|---|
|
regcomp() |
編譯正規表示式 |
|
regexec() |
執行正規表示式匹配 |
|
regerror() |
提供錯誤代碼與錯誤訊息的對映 |
|
regfree() |
釋放 regcomp() 所配置的記憶體 |
|
fnmatch() |
符合的檔案或路徑名稱 |
下列表格將說明 libc 的寬字元函式 API。
表 2–4 libc 的寬字元類別|
程式庫常式 |
說明 |
|---|---|
|
wctype() |
定義字元類別 |
|
wctrans() |
定義字元對映 |
下列表格將列出 libc 的修改和查詢語言環境。
表 2–5 libc 的修改和查詢語言環境|
程式庫常式 |
說明 |
|---|---|
|
setlocale() |
修改以及查詢程式的語言環境 |
下列表格將列出 libc 的查詢語言環境資料。
表 2–6 libc 的查詢語言環境資料|
程式庫常式 |
說明 |
|---|---|
|
nl_langinfo() |
取得目前語言環境的語言與文化資訊 |
|
localeconv() |
取得目前語言環境的貨幣與數值格式資訊 |
下列表格將說明 libc中的字元分類函式 API。
表 2–7 libc 的字元分類和字譯|
程式庫常式 |
說明 |
|---|---|
|
isalpha() |
字元是否為字母? |
|
isupper() |
字元是否為大寫? |
|
islower() |
字元是否為小寫? |
|
isdigit() |
字元是否為數字? |
|
isxdigit() |
字元是否為十六進位數字? |
|
isalnum() |
字元為字母或數字? |
|
isspace() |
字元是否為空白? |
|
ispunct() |
字元是否為標點符號? |
|
isprint() |
字元是否可以列印? |
|
iscntrl() |
字元是否為控制字元? |
|
isascii() |
字元是否為 ASCII 字元? |
|
isgraph() |
字元是否為可視字元? |
|
isphonogram() |
寬字元是否為音標符號? |
|
isideogram() |
寬字元是否為表意文字? |
|
isenglish() |
寬字元是否在補充字碼集的英文字母表中? |
|
isnumber() |
寬字元是否為補充字碼集中的數字? |
|
isspecial() |
特殊寬字元是否源自補充字碼集? |
|
iswalpha() |
寬字元是否為字母? |
|
iswupper() |
寬字元是否為大寫? |
|
iswlower() |
寬字元是否為小寫? |
|
iswdigit() |
寬字元是否為數字? |
|
iswxdigit() |
寬字元是否為十六進位數字? |
|
iswalnum() |
寬字元是字母字元或數字? |
|
iswspace() |
寬字元是否為空格? |
|
iswpunct() |
寬字元是否為標點符號? |
|
iswprint() |
寬字元是否為可列印的字元? |
|
iswgraph() |
寬字元是否為可視字元? |
|
iswcntrl() |
寬字元是否為控制字元? |
|
iswascii() |
寬字元是否為 ASCII 字元? |
|
toupper() |
將小寫字元轉換為大寫。 |
|
tolower() |
將大寫字元轉換為小寫。 |
|
towupper() |
將小寫寬字元轉換為大寫。 |
|
towlower() |
將大寫寬字元轉換為小寫。 |
|
towctrans() |
寬字元對映。 |
下列表格將說明 libc 的字元排序函式 API。
表 2–8 libc 的字元排序函式|
程式庫常式 |
說明 |
|---|---|
|
strcoll() |
排序字串 |
|
strxfrm() |
變換字串以進行比較 |
|
wcscoll() |
排序寬字元字串 |
|
wcsxfrm() |
變換寬字元字串以進行比較 |
下列表格將說明 libc 的貨幣處理函式 API。
表 2–9 libc 的貨幣格式|
程式庫常式 |
說明 |
|---|---|
|
localeconv() |
取得目前語言環境的貨幣格式資訊 |
|
strfmon() |
將貨幣值轉換為字串表示式 |
下列表格將說明 libc 的日期與時間格式。
表 2–10 libc 的日期與時間格式|
程式庫常式 |
說明 |
|---|---|
|
getdate() |
轉換使用者格式日期與時間。 |
|
strftime() |
將日期與時間轉換為字串表示式。%u轉換函式符合「X/Open CAE 規格,系統介面與標頭, 第 4 期,第 2 版」。這個含是可以將工作日以十進位數字〔1,7〕表示,其中 1 是表示星期一。 |
|
strptime() |
日期與時間轉換。 |
下列表格將說明 libc 的多位元組處理函式 API。
表 2–11 libc 的多位元組處理|
程式庫常式 |
說明 |
|---|---|
|
btowc() |
單一位元組至寬字元的轉換 |
|
mbrlen() |
取得字元中的位元組數目(可重新開始計數) |
|
mbsinit() |
決定轉換物件的狀態 |
|
mbrtowc() |
將字元轉換為寬字元程式碼(可重新開始計數) |
|
mbsrtowcs() |
將字串轉換為寬字元字串(可重新開始計數) |
|
mblen() |
取得字元中的位元組數目 |
|
mbtowc() |
將字元轉換為寬字元程式碼。 |
|
mbstowcs() |
將字串轉換為寬字元字串 |
下列表格將說明 libc 的寬字元與字串處理。
表 2–12 libc 的寬字元與字串處理|
程式庫常式 |
說明 |
|---|---|
|
wcsncat() |
將寬字元字串串接至長度 n |
|
wsdup() |
複製寬字元字串 |
|
wcscmp() |
比較寬字元字串 |
|
wcsncmp() |
比較寬字元字串至長度 n |
|
wcscpy() |
複製寬字元字串 |
|
wcsncpy() |
將寬字元字串複製為長度 n |
|
wcschr() |
尋找寬字元字串中的字元 |
|
wcsrchr() |
從右邊開始尋找寬字元字串中的字元 |
|
wcslen() | 取得寬字元字串的長度 |
|
wscol() |
傳回寬字元字串的顯示寬度 |
|
wcsspn() |
傳回出現在另一個寬字元字串的字串長度 |
|
wcscspn() |
傳回未出現在另一個寬字元字串的字串長度 |
|
wcspbrk() |
傳回出現在另一個寬字元字串的字元後的字串 |
|
wcstok() |
在寬字元字串之間移動記號 |
|
wscwcs() |
尋找寬字元字串中的字串 |
|
wcstombs() |
將寬字元字串轉換為多位元組字串 |
|
wctomb() |
將寬字元轉換為多位元組字元 |
|
wcwidth() |
決定寬字元的欄數位置 |
|
wcswidth() |
決定寬字元字串的欄數位置 |
|
wctob() |
寬字元至單一位元組的轉換 |
|
wcrtomb() |
將寬字元程式碼轉換為字元(可重新開始計數) |
|
wcstol() |
將寬字元字串轉換為長整數 |
|
wcstoul() |
將寬字元字串轉換為無符號長整數 |
|
wcstod() |
將寬字元字串轉換為雙精度 |
|
wcsrtombs() |
將寬字元字串轉換為字串(可重新開始計數) |
|
wcscat() |
串接寬字元字串 |
下列表格將說明 libc的格式化寬字元輸入與輸出。
表 2–13 libc 的格式化寬字元輸入與輸出|
程式庫常式 |
說明 |
|---|---|
|
wsprintf() |
根據格式產生寬字元字串 |
|
wsscanf() |
格式化輸入轉換 |
|
fwprintf() |
列印格式化寬字元輸出 |
|
fwscanf() |
轉換格式化寬字元輸入 |
|
wprintf() |
列印格式化寬字元輸出 |
|
wscanf() |
轉換格式化寬字元輸入 |
|
swprintf() |
列印格式化寬字元輸出 |
|
swscanf() |
轉換格式化寬字元輸入 |
|
vfwprintf() |
stdarg引數清單的的寬字元格式化輸出 |
|
vswprintf() |
stdarg引數清單的的寬字元格式化輸出 |
這份表格將說明 libc 的寬字元字串函式 API。
表 2–14 寬字元字串libc|
程式庫常式 |
說明 |
|---|---|
|
wscasecmp() |
比較寬字元字串,忽略大小寫的差異 |
|
wsncasecmp() |
程序碼字串作業 |
|
wcsstr() |
尋找寬字元子字串 |
|
wmemchr() |
在記憶體中尋找寬字元 |
|
wmemcmp() |
比較記憶體中的寬字元 |
|
wmemcpy() |
複製記憶體中的寬字元 |
|
wmemmove() |
使用重疊區域複製記憶體中的寬字元 |
|
wmemset() |
設定記憶體中的寬字元 |
下列表格將說明 libc 的寬字元輸入與輸出。
表 2–15 libc 的寬字元輸入與輸出|
程式庫常式 |
說明 |
|---|---|
|
fgetwc() |
從串流中取得多位元組字元,並轉換為寬字元 |
|
getwchar() |
從stdin中取得多位元組字元,並轉換為寬字元 |
|
fgetws() |
從串流中取得多位元組字串,並轉換為寬字元 |
|
getws() |
從stdin中取得多位元組字串,並轉換為寬字元 |
|
fputwc() |
將寬字元轉換為多位元組字元,並放入串流中 |
|
fwide() |
設定串流方向 |
|
putwchar() |
將寬字元轉換為多位元組字元,並放入stdin串流中 |
|
fputws() |
將寬字元轉換為多位元組字串,並放入串流中 |
|
putws() |
將寬字元轉換為多位元組字串,並放入 stdin 串流中 |
|
ungetwc() |
將寬字元後推至輸入串流中。 |