Rogue Wave バナー
前へマニュアルの先頭へ目次次へ

3.1 C 言語でのロケール

先の節で説明した文化や言語の依存関係は、オペレーティングシステムレベルで実現する必要があります。一般には、これをロケールという言語テーブルで実現します。

X/Open コンソーシアムでは、プログラミング言語 C から使用する Native Language Support (NLS) のさまざまなサービスを 規格化しています。この規格を一般には XPG4 と呼びます。国際化サービスは、地域対応サービスと共に X/Open の Native Language Support に組み込まれています。以下の節では、この規格に基づいて説明します。

XPG4 によれば、C 言語でのロケールは、表 2に示すカテゴリから構成されています。

2 -- C 言語でのロケールのカテゴリ

カテゴリ 内容
LC_NUMERIC
数字の規則と記号
LC_TIME
日付と時間情報の値
LC_MONETARY
通貨情報の規則と記号
LC_CTYPE
文字分類と大文字、小文字の変換
LC_COLLATE
照合順序
LC_MESSAGES
メッセージの書式と値

UNIX では通常、C 言語でのロケールの外部表現をファイルとして扱います。実装方法はオペレーティングシステムによって異なります。以下の図 4に示すように、setlocale() という関数を呼び出すと、外部実装は内部のメモリの実装に変換されます。

4 -- C 言語でのロケールの外部実装から内部実装への変換

プログラム内では、C 言語でのロケールは 1 つ以上の大域データ構造で表します。C ライブラリは、この大域データ構造の情報を利用して、ローカルな取り決めに基づいて動作する関数セットを提供します。関数と対応する情報の例を表 3に示します。

3 -- C 言語でのロケール関数と対応する情報

C 言語でのロケール関数 対応する情報
setlocale(), ...
ロケールの初期設定と言語情報
isalpha(), isupper(), isdigit(), ...
文字分類
strftime(), ...
日付関数と時間関数
strfmon()
通貨関数
printf(), scanf(), ...
数字の構文解析と書式
strcoll(), wcscoll(), ...
文字列の照合
mblen(), mbtowc(), wctomb(), ...
複数バイト関数
catopen(), catgets(), catclose()
メッセージ検索

前へマニュアルの先頭へ目次次へ

Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。


OEM リリース, 1998 年 6 月