Provided by: manpages-ja-dev_0.5.0.0.20180315+dfsg-1_all bug

名前

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

書式

       #include <locale.h>

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

説明

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

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

       カテゴリー          制御対象
       LC_ALL              全てのロケール
       LC_ADDRESS          住所と地理関連の
                           要素のフォーマット
       LC_COLLATE          文字の照合順序
       LC_CTYPE            文字の分類
       LC_IDENTIFICATION   ロケールの説明メタデータ (*)
       LC_MEASUREMENT      単位系に関する設定
                           (メートル法か US 由来の単位系) (*)
       LC_MESSAGES         地域化可能な自然言語メッセージ
       LC_MONETARY         金額の表示方法
       LC_NAME             人へのあいさつの言葉
       LC_NUMERIC          金額以外の数値の表示方法
       LC_PAPER            標準の紙のサイズに関する設定 (*)
       LC_TELEPHONE        電話サービスで使用されるフォーマット (*)
       LC_TIME             日付と時刻の表示方法

       上の表でアスタリスクが付い  ているたカテゴリーは  GNU   拡張である。   ロケールのカテゴリーの詳細な情報は
       locale(7) を参照。

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

       locale  が空文字列 "" の場合、ロケールの各部分の設定には環境変数が参照される。 その詳細は実装依存である。
       glibc の場合、まず最初に (どんな  category  に対しても)  環境変数  LC_ALL  が検査される。  次にカテゴリー
       (category)  と同じ名前の環境変数 (上記の表を参照) が検査され、最後に環境変数 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.

関連項目

       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.79 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。