SETLOCALE

Section: C Library Functions (3)
索引 jman

BSD mandoc
 

索引

名称

setlocale localeconv - C 用の自然言語の整形  

索引

ライブラリ

Lb libc  

索引

書式

In locale.h Ft char * Fn setlocale int category const char *locale Ft struct lconv * Fn localeconv void  

索引

解説

Fn setlocale 関数は、特定のルーチンの集合について、C ライブラリでいうところの 自然言語整形のスタイルを設定します。 それぞれのスタイルを `ロケール' と呼び、C 文字列として渡される適切な名前によって呼び出します。 Fn localeconv ルーチンは、現在のロケールの数値整形用パラメータを返します。

Fn setlocale 関数は、いくつかのルーチンのカテゴリを識別します。 以下は、カテゴリとカテゴリが選択したルーチンの組です。

LC_ALL
ロケール全体をまとめて設定します。
LC_COLLATE
文字列照合ルーチン用のロケールを設定します。これは Fn strcoll および Fn strxfrm でのアルファベット順を制御します。
LC_CTYPE
ctype(3), mbrune(3), multibyte(3) および rune(3) の各関数のロケールを設定します。 これは、大文字と小文字、アルファベットと非アルファベット文字 などの識別を制御します。実際の作業は Fn setrunelocale 関数によって行われます。
LC_MESSAGES
メッセージカタログのロケールを設定します。 catopen(3) 関数を参照してください。
LC_MONETARY
通貨値の整形用ロケールを設定します。これは Fn localeconv 関数に影響を及ぼします。
LC_NUMERIC
数字を整形するためのロケールを設定します。これは、 Fn localeconv によって返される値を制御するのに加えて、 Fn printf および Fn scanf のような関数の浮動小数点入出力の小数点整形方法も制御します。
LC_TIME
Fn strftime 関数を使用して日付と時刻を整形するためのロケールを設定します。

デフォルトでは 3 つのロケールだけが定義されています。空の文字列 はネイティブの環境を表します。そして C および POSIX ロケールは C 言語環境を表します。 Fa locale 引数が NULL の場合には、 Fn setlocale は現在のロケールを戻します。デフォルトでは、 C プログラムは C ロケールで開始します。ロケールを設定する唯一のライブラリ内関数は Fn setlocale です。ロケールは他のルーチンの副作用として変更されることはありません。

Fn localeconv 関数は、数字、特に通貨値の整形用パラメータを 提供する構造体を指すポインタを返します。

struct lconv {
        char    *decimal_point;
        char    *thousands_sep;
        char    *grouping;
        char    *int_curr_symbol;
        char    *currency_symbol;
        char    *mon_decimal_point;
        char    *mon_thousands_sep;
        char    *mon_grouping;
        char    *positive_sign;
        char    *negative_sign;
        char    int_frac_digits;
        char    frac_digits;
        char    p_cs_precedes;
        char    p_sep_by_space;
        char    n_cs_precedes;
        char    n_sep_by_space;
        char    p_sign_posn;
        char    n_sign_posn;
};

個々のフィールドには次の意味があります。

Fa decimal_point
通貨値を除く、小数点文字です。
Fa thousands_sep
通貨値を除く、小数点の前の桁のグループ間の区切り文字です。
Fa grouping
通貨値を除く、桁のグループの大きさです。 これは、 char 型の、低い位の桁から高い位の桁 (右から左) までのグループの大きさを表す 整数の配列を指すポインタです。 そのリストは、0 または CHAR_MAX で終わります。リストが 0 で終了する場合には、0 の前の最後のグループの 大きさを、全ての桁が埋まるまで繰り返し用います。 CHAR_MAX で終了する場合には、それ以上のグループ化は実行されません。
Fa int_curr_symbol
標準で定められた国際通貨記号です。
Fa currency_symbol
ローカルな通貨記号です。
Fa mon_decimal_point
通貨値に対する小数点文字です。
Fa mon_thousands_sep
通貨値内の桁のグループについての区切り文字です。
Fa mon_grouping
Fa grouping に類似していますが、通貨用です。
Fa positive_sign
非負の通貨値を表記するのに使用される文字で、通常は空の文字列です。
Fa negative_sign
負の通貨値を表現するのに使用される文字で、 通常はマイナス符号です。
Fa int_frac_digits
国際スタイルの通貨値における小数点以下の桁数です。
Fa frac_digits
ローカルスタイルの通貨値における小数点以下の桁数です。
Fa p_cs_precedes
非負の値に対して通貨値の前に通貨記号が置かれる場合には 1、 そうでない場合には 0 です。
Fa p_sep_by_space
非負の値に対して通貨記号と通貨値の間に空白が挿入されている場合は 1、 そうでない場合には 0 です。
Fa n_cs_precedes
負の値に対して Fa p_cs_precedes と同様です。
Fa n_sep_by_space
負の値に対して Fa p_sep_by_space と同様です。
Fa p_sign_posn
非負の量および Fa currency_symbol に関する Fa positive_sign の位置です。コードは次の通りです。

0
文字列全体を囲む丸括弧です。
1
文字列の前です。
2
文字列の後です。
3
Fa currency_symbol の直前です。
4
Fa currency_symbol の直後です。

Fa n_sign_posn
負の通貨値に対して Fa p_sign_posn と同様です。

前述した場合を除いて、フィールドの値としての空の文字列は、 結果の長さがゼロであるか、または現在のロケール内にはない値で あることを示します。 同様に CHAR_MAX の結果は利用できない値を表記します。  

索引

戻り値

Fn setlocale 関数は、指定の Fa category と Fa locale の組み合わせが意味をなさない場合には、 NULL を返してロケールの変更は失敗します。 Fn localeconv 関数は、後の Fn setlocale または Fn localeconv の呼び出しで変更される可能性のある静的オブジェクトを指すポインタを返します。  

索引

ファイル

$PATH_LOCALE/ locale/category
/usr/share/locale/ locale/category
ロケール locale とカテゴリ category 用のロケールファイル

 

索引

関連項目

colldef(1), mklocale(1), catopen(3), ctype(3), mbrune(3), multibyte(3), rune(3), strcoll(3), strxfrm(3), euc(4), utf2(4)  

索引

規格

Fn setlocale および Fn localeconv 関数は、 St -isoC に適合しています。  

索引

歴史

Fn setlocale および Fn localeconv 関数は、 BSD 4.4 ではじめて登場しました。  

索引

バグ

現在の実装は、 LC_COLLATE LC_CTYPE および LC_TIME のカテゴリ以外では、 CPOSIX ロケールのみサポートしています。

Fn localeconv における整然としない通貨サポートにも関わらず、規格は、 一般化された通貨フォーマットのための関数を組み入れていません。

われわれがリアルタイムの通貨変換機能を持つまでは、 LC_MONETARY の使用は間違った結果を導く可能性があります。 LC_NUMERIC および LC_TIME は個人的な選択肢であり、他のカテゴリで覆い隠すべきではありません。


 

索引

Index

名称
ライブラリ
書式
解説
戻り値
ファイル
関連項目
規格
歴史
バグ

jman



Time: 07:07:07 GMT, January 12, 2009