Provided by: manpages-ja-dev_0.5.0.0.20221215+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 を返す。

       The locale "C" or "POSIX" is a portable locale; it exists on all conforming systems.

       A locale name is typically of the  form  language[_territory][.codeset][@modifier],  where
       language  is  an ISO 639 language code, territory is an ISO 3166 country code, and codeset
       is a character set or encoding identifier like ISO-8859-1 or UTF-8.  For  a  list  of  all
       supported locales, try "locale -a" (see 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 になる。

属性

       この節で使用されている用語の説明については、 attributes(7) を参照。

       ┌─────────────────┬───────────────┬────────────────────────────┐
       │インターフェース属性                         │
       ├─────────────────┼───────────────┼────────────────────────────┤
       │setlocale()      │ Thread safety │ MT-Unsafe const:locale env │
       └─────────────────┴───────────────┴────────────────────────────┘

準拠

       POSIX.1-2001, POSIX.1-2008, C89, C99.

       The  C  standards  specify  only the categories LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY,
       LC_NUMERIC, and LC_TIME.  POSIX.1 adds LC_MESSAGES.   The  remaining  categories  are  GNU
       extensions.

関連項目

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