Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       setlocale - 現在のロケール (locale) を設定する

書式

       #include <locale.h>

       char *setlocale(int category, const char *locale);

説明

       setlocale()  関数はプログラムのカレントロケールを設定したり 問い合わせたりするのに用いられる。

       locale  が NULL でなければ、プログラムのカレントロケールは引き数に従って変更される。 引き数 category はプ
       ログラムのカレントロケールのどの部分を変更するかを決める。

       LC_ALL 全てのロケール

       LC_COLLATE
              正規表現のマッチング (範囲表現と等価クラスのマッチングを決定する)  と文字列の照合 (collation)

       LC_CTYPE
              正規表現のマッチング、文字の分類、文字の変換、大文字小文字比較、 ワイド文字関数

       LC_MESSAGES
              地域化可能な自然言語メッセージ

       LC_MONETARY
              通貨の書式

       LC_NUMERIC
              数値の書式 (小数点や 3 桁ごとの区切り)

       LC_TIME
              時刻と日付けの書式

       引き数 localecategory に設定する文字列へのポインタである。 この文字列はよく知られた定数である "C"  や
       "da_DK" などでも良いし (以下を参照)、他のときに setlocale()  を呼び出した際に返された、内部用の文字列でも
       良い。

       locale"" の場合、ロケールの各部分の設定には環境変数が参照される。 その詳細は実装依存である。 glibc の
       場合、まず最初に (どんな category に対しても) 環境変数 LC_ALL が検査される。 次にカテゴリ (category) と同
       じ名前の環境変数  (LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME)  が検査され、最後
       に環境変数 LANG が検査される。 最初に見つかった環境変数を使用する。  その値がロケール指定として正しくなけ
       れば、ロケールは変更されず、 setlocale()  は NULL を返す。

       "C"  ロケールや "POSIX" ロケールは互換性のあるロケールである。 この LC_CTYPE の部分は 7 ビット ASCII 文字
       集合に相当している。

       ロケール名の書式は、通常 language[_territory][.codeset][@modifier] というものである。 ここで language  は
       ISO 639 の言語コードである。 territory は ISO 3166 の国名コードである。 codesetISO-8859-1UTF-8 の
       ような文字集合や文字符号化識別子である。  サポートされているロケールの一覧を得るには、 "locale -a" を実行
       してみよ (locale(1)  参照のこと)。

       locale が NULL ならば、現在のロケールを問い合わせるのみで変更はしない。

       main プログラムの起動時には、 互換性のある "C" ロケールがデフォルトで選択される。  プログラムをすべてのロ
       ケールに対して互換にしたければ、 プログラムの初期化の後に

           setlocale(LC_ALL, "");

       を呼び出し、ロケール依存の情報には  localeconv(3)  の返り値を用い、 MB_CUR_MAX > 1 の場合には文字列の操作
       には多バイト文字、ワイド文字関数を使用し、  文字列の比較には  strcoll(3),  wcscoll(3)    や   strxfrm(3),
       wcsxfrm(3)  を用いる。

返り値

       setlocale()   の呼び出しに成功すると、 そのロケール集合に対応する内部文字列 (opaque string) を返す。 この
       文字列は静的な記憶域に割り当てられているかもしれない。 この返って来た文字列を、カテゴリ指定と共に、  のち
       の  setlocale  の呼び出しに指定すれば、  プロセスのその部分のロケールが復元される。  設定に失敗した場合に
       は、返り値は NULL になる。

準拠

       C89, C99, POSIX.1-2001.

注意

       Linux (というか glibc) は互換性のあるロケールとして "C""POSIX" をサポートしている。  古きよき時代には
       (例えば  libc-4.5.21 と libc-4.6.27 などでは)、 European Latin-1 向けに "ISO-8859-1" ロケールがサポートさ
       れており、 ロシア語 (Russian) 向けに "KOI-8" (より正確には "koi-8r") ロケールがサポートされていた。  従っ
       て環境変数を  LC_CTYPE=ISO-8859-1 と指定するだけで isprint(3) は正しい答えを返した。 最近では、英語以外を
       使うヨーロッパ人はもう少々やっかいな作業を必要とし、 実際のロケールファイルをインストールしなければならな
       い。

関連項目

       locale(1), localedef(1), isalpha(3), localeconv(3), nl_langinfo(3), rpmatch(3), strcoll(3),  strftime(3),
       charsets(7), locale(7)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。

GNU                                                2008-12-05                                       SETLOCALE(3)