setlocale サブルーチン

目的

プログラムの現行ロケール全体またはその一部を変更または照会します。

ライブラリー

標準 C ライブラリー (libc.a)

構文

#include <locale.h>
char *setlocale ( Category Locale)
int Category;
const char *Locale;

説明

setlocale サブルーチンは、 Category および Locale パラメーターで指定されたプログラムのロケールのすべてまたは一部を選択します。 setlocale サブルーチンは、ロケールの指定された部分を変更または照会します。 Category パラメーターの LC_ALL 値は、ロケール全体 (すべてのカテゴリー) を指定します。 その他の 「カテゴリー」 値は、プログラム・ロケールの一部のみを指定します。

Locale パラメーターは、 Category パラメーターに特定の規則を設定するために必要な情報を提供するストリングを指定します。 Locale パラメーターのコンポーネントは、言語とテリトリーです。 locale 引数に使用できる値は、事前定義された language_territory の組み合わせ、またはユーザー定義のロケールです。

ユーザーが新規ロケールを定義する場合は、固有の名前のロケール定義ソース・ファイルを指定する必要があります。 このファイルには、文字照合、文字種別、通貨、数値、時刻、およびメッセージ情報を指定する必要があります。 ロケール定義ソース・ファイルは、 localedef コマンドによってバイナリー・ファイルに変換されます。 バイナリー・ロケール定義ファイルは、 LOCPATH 環境変数で指定されたディレクトリー内でアクセスされます。

注: すべての setuid および setgid プログラムは、 LOCPATH 環境変数を無視します。

プログラム開始時のデフォルト・ロケールは C ロケールです。 このデフォルト・ロケール環境を変更するには、 setlocale サブルーチンを明示的に呼び出す必要があります。

ロケール状態は、プロセス内のすべてのスレッドに共通です。

パラメーター

項目 説明
カテゴリー プログラムのロケールの全部または一部を表す値を指定します。 Locale パラメーターの値に応じて、これらのカテゴリーは対応する名前を持つ環境変数の値によって開始されます。 locale.h ファイルに定義されている Category パラメーターの有効な値は、以下のとおりです。
LC_ALL
プログラムのロケール全体の動作に影響します。
LC_COLLATE
正規表現および照合サブルーチンの動作に影響します。
LC_CTYPE
正規表現、文字種別、大/小文字変換、およびワイド文字サブルーチンの動作に影響します。
LC_MESSAGES
メッセージの内容、および肯定応答と否定応答に影響します。
LC_MONETARY
通貨値をフォーマット設定するサブルーチンの動作に影響します。
LC_NUMERIC
非通貨数値をフォーマット設定するサブルーチンの動作に影響します。
LC_TIME
時間変換サブルーチンの動作に影響します。
locale Category パラメーターの必須設定を含む文字ストリングを指します。

Locale パラメーターの特殊値は次のとおりです。

"C"
C ロケールは、すべてのプログラムがプログラムの始動時に継承するロケールです。
"POSIX"
"C"の値と同じロケールを指定します。
""
ロケール環境変数に従ってカテゴリーを設定することを指定します。
ヌル
現在のロケール環境を照会し、ロケールの名前を返します。

Locale パラメーターでサポートされるロケール値について詳しくは、「 グローバリゼーション・ガイドおよびリファレンス」の「 サポートされる言語およびロケール 」を参照してください。

戻り値

Locale パラメーターにストリングへのポインターが指定され、選択が受け入れられる場合、 setlocale サブルーチンは、新規ロケールの指定された Category パラメーターに関連付けられたストリングを戻します。 選択が受け入れられない場合は、ヌル・ポインターが戻され、プログラム・ロケールは変更されません。

Locale パラメーターに NULL を使用すると、 setlocale サブルーチンは、プログラムの現行ロケールの Category パラメーターに関連したストリングを戻します。 プログラムのロケールは変更されません。

setlocale サブルーチンとその関連カテゴリーによって戻されるストリングを使用した後続の呼び出しでは、プログラム・ロケールのその部分が復元されます。 戻されるストリングはプログラムによって変更されませんが、 setlocale サブルーチンへの後続の呼び出しによって上書きすることができます。