wctob() — ワイド文字からバイトへの変換
フォーマット
#include <stdio.h>
#include <wchar.h>
int wctob(wint_t wc);
言語レベル
ANSI
スレッド・セーフ
はい
ロケール依存
この関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーの影響を受ける可能性があります。また、この振る舞いは、LOCALETYPE(*LOCALEUCS2) または LOCALETYPE(*LOCALEUTF) がコンパイル・コマンドに対して指定されている場合は、現行ロケールの LC_UNI_CTYPE カテゴリーの影響を受ける可能性もあります。この関数は、コンパイル・コマンドに対して LOCALETYPE(*CLD) が指定されている場合には使用できません。詳細については、CCSID およびロケールの理解を参照してください。
ワイド文字関数
詳細については、ワイド文字を参照してください。
説明
wctob() 関数は、マルチバイト文字の長さが初期シフト状態時に 1 バイトである、拡張文字セットのメンバーに wc が対応しているかどうかを 判別します。
戻り値
c が 1 バイトの長さのマルチバイト文字に対応している場合、 wctob() 関数は単一バイト表示を戻します。 そうでない場合には、EOF を戻します。
変換エラーが発生した場合、errno は ECONVERT に設定される可能性があります。
例
この例では wctob() 関数を使用し、ワイド文字 A が有効な 1 バイト文字で
あるかどうかをテストします。
#include <stdio.h>
#include <wchar.h>
int main(void)
{
wint_t wc = L'A';
if (wctob(wc) == wc)
printf("%lc is a valid single byte character¥n", wc);
else
printf("%lc is not a valid single byte character¥n", wc);
return 0;
}
/************************************************************
The output should be similar to:
A is a valid single byte character
************************************************************/