名前 | 形式 | 機能説明 | 戻り値 | エラー | 使用法 | 属性 | 関連項目
#include <stdlib.h>int wctomb(char *s, wchar_t wchar);
wctomb() 関数は、 wchar の値を持つワイド文字コードに対応する文字を表すのに必要なバイト数 を調べます。 さらに、その文字表現 ( 複数バイト ) を s が示す配列オブジェクト ( s が NULL ポインタでないとき ) に書き込みます。 書き込まれる最大バイト数は MB_CUR_MAX が示す値です。
s に NULL ポインタを指定して呼び出すと、 この関数は 0 を返します。 この関数の動作は、 現在のロケールの LC_CTYPE カテゴリに左右されます。
s が NULL ポインタの場合、 wctomb() は、文字エンコーディングが状態依存型であれば 0 以外の値を、そうでなければ 0 を返します。 s が NULL ポインタではない場合、 wchar の値が正しい文字に対応していれば wctomb() はその文字を構成する バイト数を返し、正しい文字に対応していなければ –1 を返します。
どのような場合でも、返される値は MB_CUR_MAX マクロの値を超えることはありません。
エラーは定義されていません。
マルチスレッドのアプリケーションにおいて、 setlocale(3C) を呼び出してロケール変更を行なっていない限り、 wctomb() 関数は安全に使用できます。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
MT レベル | 例外付き MT-safe |
CSI | 対応済み |