最新の Solaris 環境は 2 種類の API を提供します。
複数バイト (ファイルコード)
ワイド文字 (プロセスコード)
ワイド文字コードは、一定の幅を持つ論理エンティティです。したがって、複数バイトを使用する時のように適切な文字境界を管理する必要はありません。
プログラムでファイルから入力を受け取る際には、fscanf や fwscanf などの入力関数を使ってファイルの複数バイトデータを直接ワイド文字のプロセスコードに変換できます。あるいは、データの入力後に mbtowc や mbsrtowcs などの変換関数を使ってデータを変換することもできます。出力データのワイド文字形式を複数バイト文字形式に変換する場合は、fwprintf や fprintf などの出力関数を使って直接変換するか、出力前に wctomb や wcsrtombs などの変換関数を使って変換します。
以下の各表に、最新の Solaris 製品の国際化 API を示します。
次の表は libc のメッセージング関数 API です。
表 2–1 libc のメッセージング関数|
ライブラリルーチン |
説明 |
|---|---|
|
bindtextdomain() |
メッセージドメインパスをバインドする |
|
catclose() |
メッセージカタログを閉じる |
|
catgets() |
プログラムメッセージを読み取る |
|
catopen() |
メッセージカタログを開く |
|
dcgettext() |
指定したドメインとカテゴリのメッセージカタログからメッセージを取得する |
|
dgettext() |
指定したドメインのメッセージカタログからメッセージを取得する |
|
gettext() |
メッセージデータベースからテキスト文字列を取得する |
|
textdomain() |
現在のドメインを設定および照会する |
次の表に libc のコード変換関数 API を示します。
表 2–2 libc のコード変換関数|
ライブラリルーチン |
説明 |
|---|---|
|
iconv() |
コードを変換する |
|
iconv_close() |
変換記述子の割り当てを解除する |
|
iconv_open() |
変換記述子を割り当てる |
次の表に libc の正規表現 API を示します。
表 2–3 libc の正規表現関数|
ライブラリルーチン |
説明 |
|---|---|
|
fnmatch() |
ファイル名またはパス名を照合する |
|
regcomp() |
正規表現をコンパイルする |
|
regerror() |
エラーコードとエラーメッセージのマッピングを行う |
|
regexec() |
正規表現の照合を実行する |
|
regfree() |
regcomp() により割り当てられたメモリーを解放する |
次の表に libc のワイド文字関数 API を示します。
表 2–4 libc のワイド文字クラス|
ライブラリルーチン |
説明 |
|---|---|
|
wctrans() |
文字のマッピングを定義する |
|
wctype() |
文字クラスを定義する |
次の表に libc のロケールの変更および照会を行う API を示します。
表 2–5 libc のロケールの変更および照会関数|
ライブラリルーチン |
説明 |
|---|---|
|
setlocale() |
プログラムのロケールを変更および照会を行う |
次の表に libc のロケールデータを照会する API を示します。
表 2–6 libc のロケールデータ照会関数|
ライブラリルーチン |
説明 |
|---|---|
|
localeconv() |
現在のロケールの通貨および数値形式の情報を取得する |
|
nl_langinfo() |
現在のロケールの言語および文化情報を取得する |
次の表に libc の文字分類関数 API を示します。
表 2–7 libc の文字分類および変換関数|
ライブラリルーチン |
説明 |
|---|---|
|
isalnum() |
文字は英数字か |
|
isalpha() |
文字はアルファベットか |
|
isascii() |
文字は ASCII 文字か |
|
iscntrl() |
文字は制御文字か |
|
isdigit() |
文字は数か |
|
isenglish() |
ワイド文字は補助コードセットの英語のアルファベットか |
|
isgraph() |
文字は表示可能な文字か |
|
isideogram() |
ワイド文字は表意文字か |
|
islower() |
文字は小文字か |
|
isnumber() |
ワイド文字は補助コードセットの数か |
|
isphonogram() |
ワイド文字は表音文字か |
|
isprint() |
文字は印刷可能か |
|
ispunct() |
文字は句読点か |
|
isspace() |
文字は空白か |
|
isspecial() |
ワイド文字は補助コードセットの文字か |
|
isupper() |
文字は大文字か |
|
iswalnum() |
ワイド文字は英数字か |
|
iswalpha() |
ワイド文字はアルファベットか |
|
iswascii() |
ワイド文字は ASCII 文字か |
|
iswcntrl() |
ワイド文字は制御文字か |
|
iswdigit() |
ワイド文字は数か |
|
iswgraph() |
ワイド文字は表示可能な文字か |
|
iswlower() |
ワイド文字は小文字か |
|
iswprint() |
ワイド文字は印刷可能な文字か |
|
iswpunct() |
ワイド文字は句読点か |
|
iswspace() |
ワイド文字は空白か |
|
iswupper() |
ワイド文字は大文字か |
|
iswxdigit() |
ワイド文字は 16 進数か |
|
isxdigit() |
文字は 16 進数か |
|
tolower() |
大文字を小文字に変換する |
|
toupper() |
小文字を大文字に変換する |
|
towctrans() |
ワイド文字のマッピング |
|
towlower() |
ワイド文字の大文字を小文字に変換する |
|
towupper() |
ワイド文字の小文字を大文字に変換する |
次の表に 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 仕様、System Interfaces and Headers, Issue 4, Version 2 に準拠しています。この機能は、10 進法の 1 から 7 で週日を表しており、現在では 1 が月曜日を表します。 |
|
strptime() |
日付と時間の変換 |
次の表に libc の複数バイト処理関数 API を示します。
表 2–11 libc の複数バイト処理関数|
ライブラリルーチン |
説明 |
|---|---|
|
btowc() |
シングルバイトからワイド文字に変換する |
|
mblen() |
文字のバイト数を取得する |
|
mbrlen() |
1 つの文字に含まれるバイト数を取得する (再起動可能) |
|
mbrtowc() |
1 つの文字を 1 つのワイド文字に変換する (再起動可能) |
|
mbsinit() |
変換オブジェクトの状態を決定する |
|
mbsrtowcs() |
文字列をワイド文字の文字列に変換する (再起動可能) |
|
mbstowcs() |
文字列をワイド文字の文字列に変換する |
|
mbtowc() |
1 つの文字を 1 つのワイド文字に変換する |
次の表に libc のワイド文字および文字列処理関数を示します。
表 2–12 libc のワイド文字および文字処理|
ライブラリルーチン |
説明 |
|---|---|
|
wcrtomb() |
ワイド文字から文字に変換する (再起動可能) |
|
wcscat() |
ワイド文字の文字列を照合する |
|
wcschr() |
ワイド文字の文字列内の文字を検索する |
|
wcscmp() |
ワイド文字の文字列を比較する |
|
wcscpy() |
ワイド文字の文字列をコピーする |
|
wcscspn() |
ワイド文字の文字列が別のワイド文字の文字列に現れない長さを返す |
|
wcslen() |
ワイド文字の文字列の長さを取得する |
|
wcsncat() |
ワイド文字の文字列を長さ n に連結する |
|
wcsncmp() |
ワイド文字の文字列を長さ n 分比較する |
|
wcsncpy() |
ワイド文字の文字列を長さ n 分コピーする |
|
wcspbrk() |
別のワイド文字の文字列に含まれている、ワイド文字の文字列の先頭のポインタを返す |
|
wcsrchr() |
ワイド文字の文字列を右から検索する |
|
wcsrtombs() |
文字列をワイド文字の文字列に変換する (再起動可能) |
|
wcsspn() |
ワイド文字の文字列が別のワイド文字の文字列に現れる長さを返す |
|
wcstod() |
ワイド文字の文字列を倍精度に変換する |
|
wcstok() |
ワイド文字の文字列の中でトークンを移動する |
|
wcstol() |
ワイド文字の文字列をロング整数に変換する |
|
wcstombs() |
ワイド文字の文字列を複数バイトの文字列に変換する |
|
wcstoul() |
ワイド文字の文字列を符号なしロング整数に変換する |
|
wscwcs() |
ワイド文字の文字列内の文字列を検索する |
|
wcswidth() |
ワイド文字の文字列のカラム数を調べる |
|
wctob() |
ワイド文字からシングルバイト文字に変換する |
|
wctomb() |
ワイド文字を複数バイト文字に変換する |
|
wcwidth() |
ワイド文字のカラム数を調べる |
|
wscol() |
ワイド文字の文字列の表示幅を返す |
|
wsdup() |
ワイド文字の文字列を重複させる |
次の表に libc のワイド文字入力および出力の書式化関数を示します。
表 2–13 libc のワイド文字入力および出力の書式化関数|
ライブラリルーチン |
説明 |
|---|---|
|
fwprintf() |
ワイド文字書式付き出力を印刷する |
|
fwscanf() |
ワイド文字書式付き入力を変換する |
|
swprintf() |
ワイド文字書式付き出力を印刷する |
|
swscanf() |
ワイド文字書式付き入力を変換する |
|
vfwprintf() |
stdarg 引数リストをワイド文字書式で出力する |
|
vswprintf() |
stdarg 引数リストをワイド文字書式で出力する |
|
wprintf() |
ワイド文字書式付き出力を印刷する |
|
wscanf() |
ワイド文字書式付き入力を変換する |
|
wsprintf() |
書式に従ってワイド文字の文字列を生成する |
|
wsscanf() |
書式付き入力規約 |
次の表に libc のワイド文字列関数 API を示します。
表 2–14 libc のワイド文字列関数|
ライブラリルーチン |
説明 |
|---|---|
|
wcsstr() |
ワイド文字の部分文字列を検索する |
|
wmemchr() |
ワイド文字をメモリー内で検索する |
|
wmemcmp() |
メモリー内のワイド文字を比較する |
|
wmemcpy() |
メモリー内のワイド文字をコピーする |
|
wmemmove() |
領域がオーバーラップする状態でメモリー内のワイド文字をコピーする |
|
wmemset() |
メモリ内のワイド文字を設定する |
|
wscasecmp() |
大文字と小文字を区別せずにワイド文字の文字列を比較する |
|
wsncasecmp() |
コード文字列動作を処理する |
次の表に libc のワイド文字入力および出力関数を示します。
表 2–15 libc のワイド文字入力および出力関数|
ライブラリルーチン |
説明 |
|---|---|
|
fgetwc() |
ストリームから複数バイト文字を取り出し、ワイド文字に変換する |
|
fgetws() |
ストリームから複数バイトの文字列を取り出し、ワイド文字に変換する |
|
fputwc() |
ワイド文字を複数バイト文字に変換し、ストリームに送る |
|
fputws() |
ワイド文字を複数バイトの文字列に変換し、ストリームに送る |
|
fwide() |
ストリームの方向を設定する |
|
getwchar() |
標準入力から複数バイト文字を取り出し、ワイド文字に変換する |
|
getws() |
標準入力から複数バイト文字列を取り出し、ワイド文字に変換する |
|
putwchar() |
ワイド文字を複数バイト文字に変換し、標準入力に送る |
|
putws() |
ワイド文字を複数バイト文字列に変換し、標準入力に送る |
|
ungetwc() |
ワイド文字を入力ストリームに戻す |