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/ に書かれている。