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;
}

関連情報