wcslocaleconv() — ワイド・ロケール情報の検索
形式
#include <locale.h>
struct wcslconv *wcslocaleconv(void);言語レベル
拡張済み
スレッド・セーフ
はい
ロケール依存
この関数の振る舞いは、現行ロケールの LC_UNI_NUMERIC カテゴリーおよび LC_UNI_MONETARY カテゴリーの影響を受ける可能性があります。 この関数は、コンパイル・モードで LOCALETYPE(*LOCALEUCS2) または LOCALETYPE(*LOCALEUTF) が指定される場合のみ使用可能です。 詳しくは、 CCSID とロケールについてを参照してください。
ワイド文字関数
詳しくは、 ワイド文字 を参照してください。
説明
wcslocaleconv() 関数は localeconv() 関数と同じですが、lconv 構造体のワイド・バージョンである wcslconv 構造体へのポインターを戻す点が異なります。 これらのエレメントは、現行ロケールの
LC_UNI_MONETARY カテゴリーおよび LC_UNI_NUMERIC カテゴリーによって
判別されます。
戻り値
wcslocaleconv() 関数は、wcslconv
構造体へのポインターを戻します。
例
この例では、フランス語ロケールの Unicode 通貨記号を出力します。
/************************************************************************
This example prints out the Unicode currency symbol for a French
locale. You first must create a Unicode French locale. You can do
this with this command:
CRTLOCALE LOCALE('/QSYS.LIB/MYLIB.LIB/LC_UNI_FR.LOCALE') +
SRCFILE('/QSYS.LIB/QSYSLOCALE.LIB/QLOCALESRC.FILE/ +
FR_FR.MBR') CCSID(13488)
Then you must compile your c program with LOCALETYPE(*LOCALEUCS2)
************************************************************************/
#include <stdio.h>
#include <locale.h>
int main(void) {
char * string;
struct wcslconv * mylocale;
if (NULL != (string = setlocale(LC_UNI_ALL,
"/QSYS.LIB/MYLIB.LIB/LC_UNI_FR.LOCALE"))) {
mylocale = wcslocaleconv();
/* Display the Unicode currency symbol in a French locale */
printf("French Unicode currency symbol is a %ls\n",
mylocale->currency_symbol);
} else {
printf("setlocale(LC_UNI_ALL, \"/QSYS.LIB/MYLIB.LIB/LC_UNI_FR.LOCALE\") \
returned <NULL>\n");
}
return 0;
}