プログラムlocale
は、プログラムを開始したプロセスのロケール変数を印刷します。以下は、locale
シェルから起動したときの出力例です。
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
この情報はどこで入手できますか? (シェルには4つのロケール環境変数しかないため、locale
この情報はシェル環境変数から継承されないことを知っています。)locale
ベストアンサー1
その環境変数の値に基づいてロケールを処理する方法を知り、それを取得します。
GNUバージョンを例にすると、次のように始まります。呼ぶsetlocale (LC_ALL, "")
現在のロケールを設定します。それでは全部苦しむだろうロケールカテゴリLANG
、(最初に印刷)、LC_ALL
(最後に印刷)を除いて各値を順番に印刷します。これらの値は、環境値を確認し、ロケールに適用される規則に従って決定されます。
- 設定すると、
LC_ALL
すべてのカテゴリがその値を使用します。 - カテゴリに環境に設定された値がない場合は、
LANG
「POSIX」の値がある場合はその値を取り、それ以外の場合は「POSIX」の値を取り、その値は次に含まれます。二重引用符。