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
のカテゴリ以外では、
C
と
POSIX
ロケールのみサポートしています。
Fn localeconv
における整然としない通貨サポートにも関わらず、規格は、
一般化された通貨フォーマットのための関数を組み入れていません。
われわれがリアルタイムの通貨変換機能を持つまでは、
LC_MONETARY
の使用は間違った結果を導く可能性があります。
LC_NUMERIC
および
LC_TIME
は個人的な選択肢であり、他のカテゴリで覆い隠すべきではありません。
索引
Index
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 戻り値
-
- ファイル
-
- 関連項目
-
- 規格
-
- 歴史
-
- バグ
-
Time: 07:07:07 GMT, January 12, 2009