システムのロケールに関連する関数は次のとおりです。
プログラムのロケールを設定します
インストールされているロケールを問い合わせます
localelist() 呼び出しに関連付けられたメモリーを解放します
localelist() 関数は、システムにインストールされているロケールを問い合わせるために使用します。Oracle Solaris システムに追加のロケールをインストールする方法の詳細は、International Language Environments Guide for Oracle Solaris 11.2を参照してください。
詳細は、setlocale(3C)、 localelist(3C)、 localelistfree(3C)、 locale_alias(5)、 langinfo.h(3HEAD)、 nl_types.h(3HEAD)、および environ(5) のマニュアルページを参照してください。
使用例 2-1 プログラムのロケールの設定次のコード抜粋部分は、ロケールを en_US.UTF-8 に設定する方法を示しています。
#include <locale.h> : (void) setlocale(LC_ALL, "en_US.UTF-8");
次のコード抜粋部分は、現在のロケールを問い合わせる方法を示しています。
#include <locale.h> : char *locale; : locale = setlocale(LC_ALL, NULL);
この例では、locale 変数はプログラムの現在のロケールに設定されます。
使用例 2-3 ユーザー環境からのロケール設定の使用次のコード抜粋部分は、ユーザー環境のロケール設定を使用するように env_locale 変数を設定する方法を示しています。
#include <locale.h> : char *env_locale; env_locale = setlocale(LC_ALL, "");
たとえば、ユーザー環境のロケールが es_ES.UTF-8 の場合、env_locale 変数は es_ES.UTF-8 に設定されます。
"/es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/de_DE.UTF-8"
この文字列には、LC_CTYPE、LC_NUMERIC、LC_TIME、LC_COLLATE、LC_MONETARY、LC_MESSAGES というカテゴリが含まれています。この LC_MESSAGES は環境内で de_DE.UTF-8 に設定されています。