SETLOCALE(3) FreeBSD ライブラリ関数マニュアル SETLOCALE(3)
名称
setlocale, localeconv − C 用の自然言語の整形 |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <locale.h> char * |
setlocale(int category, const char *locale); struct lconv * |
localeconv(void); |
解説 |
setlocale() 関数は、特定のルーチンの集合について、C ライブラリでいうとこ ろの自然言語整形のスタイルを設定します。それぞれのスタイルを ‘ロケール’ と呼び、C 文字列として渡される適切な名前によって呼び出します。 localeconv() ルーチンは、現在のロケールの数値整形用パラメータを返します。 setlocale() 関数は、いくつかのルーチンのカテゴリを識別します。以下は、カ テゴリとカテゴリが選択したルーチンの組です。 |
LC_ALL
ロケール全体をまとめて設定します。 LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME デフォルトでは 3 つのロケールだけが定義されています。空の文字列 "" はネイ ティブの環境を表します。そして "C" および "POSIX" ロケールは C 言語環境を 表します。 locale 引数が NULL の場合には、 setlocale() は現在のロケールを 戻します。デフォルトでは、 C プログラムは "C" ロケールで開始します。ロ ケールを設定する唯一のライブラリ内関数は setlocale() です。ロケールは他の ルーチンの副作用として変更されることはありません。 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; |
}; 個々のフィールドには次の意味があります。 |
decimal_point
通貨値を除く、小数点文字です。 thousands_sep grouping int_curr_symbol currency_symbol mon_decimal_point mon_thousands_sep mon_grouping positive_sign negative_sign int_frac_digits frac_digits p_cs_precedes p_sep_by_space n_cs_precedes n_sep_by_space p_sign_posn n_sign_posn 前述した場合を除いて、フィールドの値としての空の文字列は、結果の長さがゼ ロであるか、または現在のロケール内にはない値であることを示します。同様に CHAR_MAX の結果は利用できない値を表記します。 戻り値 |
setlocale() 関数は、指定の category と locale の組み合わせが意味をなさな い場合には、 NULL を返してロケールの変更は失敗します。 localeconv() 関数 は、後の setlocale() または localeconv() の呼び出しで変更される可能性のあ る静的オブジェクトを指すポインタを返します。 |
ファイル
$PATH_LOCALE/locale/category
/usr/share/locale/locale/category 関連項目 |
colldef(1), mklocale(1), catopen(3), ctype(3), mbrune(3), multibyte(3), rune(3), strcoll(3), strxfrm(3), euc(4), utf2(4) |
規格
setlocale() および localeconv() 関数は、 ISO/IEC 9899:1990 (‘‘ISO C89’’) に適合しています。 |
歴史
setlocale() および localeconv() 関数は、 4.4BSD ではじめて登場しました。 |
バグ
現在の実装は、 LC_COLLATE, LC_CTYPE および LC_TIME のカテゴリ以外では、 "C" と "POSIX" ロケールのみサポートしています。 localeconv() における整然としない通貨サポートにも関わらず、規格は、一般化 された通貨フォーマットのための関数を組み入れていません。 われわれがリアルタイムの通貨変換機能を持つまでは、 LC_MONETARY の使用は間 違った結果を導く可能性があります。 LC_NUMERIC および LC_TIME は個人的な選 択肢であり、他のカテゴリで覆い隠すべきではありません。 FreeBSD 10.0 June 9, 1993 FreeBSD 10.0 |