国際化対応言語環境の利用ガイド

libc の国際化 API

最新の Solaris 環境は 2 種類の API を提供します。

ワイド文字コードは、一定の幅を持つ論理エンティティです。したがって、複数バイトを使用する時のように適切な文字境界を管理する必要はありません。

プログラムでファイルから入力を受け取る際には、fscanffwscanf などの入力関数を使ってファイルの複数バイトデータを直接ワイド文字のプロセスコードに変換できます。あるいは、データの入力後に mbtowcmbsrtowcs などの変換関数を使ってデータを変換することもできます。出力データのワイド文字形式を複数バイト文字形式に変換する場合は、fwprintffprintf などの出力関数を使って直接変換するか、出力前に wctombwcsrtombs などの変換関数を使って変換します。

以下の各表に、最新の 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()

ワイド文字を入力ストリームに戻す