SETLOCALE

Section: Linux Programmer's Manual (3)
Updated: 2017-09-15
IndexJM Home Page
 

名前

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 formlanguage[_territory][.codeset][@modifier], where language is an ISO 639 language code, territory is an ISO 3166 country code, andcodeset is a character set or encoding identifier like ISO-8859-1 orUTF-8. For a list of all supported locales, try "locale -a" (seelocale(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 safetyMT-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 addsLC_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/ に書かれている。


関連キーワード

locale,setlocale,SETLOCALE,プログラム,カテゴリー,category,ALL,カレントロケール,pages,プロジェクト 

Index

名前
書式
説明
返り値
属性
準拠
関連項目
この文書について

This document was created byman2html, using the manual pages.
Time: 15:49:12 GMT, July 11, 2021