名前 | 形式 | 機能説明 | 戻り値 | エラー | 使用法 | 属性 | 関連項目
#include <stdlib.h>int mbtowc(wchar_t *pwc, const char *s, size_t n);
s が NULL ポインタでないとき、mbtowc() は s が示す文字のバイト数を判断します。さらに、その文字に対応する wchar_t 型の値のワイド文字コードを調べます。NULL バイトに対応するワイド文字コードの値は 0 となります。文字が正しいものであり、さらに pwc が NULL ポインタでなければ、mbtowc() は対応するワイド文字コードを pwc が示すオブジェクト中に書き出します。
s に NULL ポインタを指定して呼び出すと、mbtowc() は 0 を返します。この関数の動作は、現在のロケールの LC_CTYPE カテゴリによって影響されます。s が示す配列のうち、最大 n バイトが調べられます。
s が NULL ポインタの場合、mbtowc() はs 0 を返します。s が NULL ポインタではない場合、mbtowc() は s が NULL バイトを指していれば 0 を返し、後続の n 個以下のバイトが正しい文字を構成していればそのバイト数を、正しい文字を構成していなければ -1 を返して errno にエラーを示す値を設定します。
どのような場合でも、返される値は n や MB_CUR_MAX マクロの値を超えることはありません。
ロケール変更のために mbtowc() setlocale(3C) を呼び出していないかぎり、マルチスレッドのアプリケーションにおいて、mbtowc()関数を安全に使用できます。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
MT レベル | 例外付き MT-Safe |
CSI | 対応済み |