|
≫ |
|
|
|
HP OpenVMS HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)
マルチバイト文字を,そのワイド文字表現に変換します。
形式
#include <wchar.h>
size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps);
引数
pwc結果として得られるワイド文字コードへのポインタ。
sマルチバイト文字へのポインタ。
nマルチバイト文字を構成するバイト数の最大値。
ps
mbstate_tオブジェクトへのポインタ。 NULL ポインタが指定された場合,関数は内部の
mbstate_tオブジェクトを使用します。
mbstate_tは,状態依存のコードセットのための変換状態を保持する目的に使われる不透明のデータ型です。
説明
s が NULL ポインタである場合,
mbrtowcは次の呼び出しと等価です。
この場合,pwc と n の値は無視されます。
s が NULL ポインタでない場合,
mbrtowcは s がポイントするバイトから始まる最高
n バイトの内容を検査し,次のマルチバイト文字を完成させるために必要なバイト数を決定します ( シフト・シーケンスを含みます )。
次のマルチバイト文字が完成したと判断した場合,関数は対応するワイド文字の値を決定し,
pwc が NULL ポインタでなければ,その値を
pwc がポイントするオブジェクトに格納します。対応するワイド文字が null ワイド文字である場合,結果として得られる状態は初期変換状態です。
mbrtowcがカウント関数として呼び出された場合,つまり pwc が NULL ポインタで, s が NULL ポインタでも null バイトへのポインタでもなかった場合,内部の
mbstate_tオブジェクトの値は変更されません。
戻り値
x
|
マルチバイト文字を構成するバイトの数。
|
0
|
次の
n 個以下のバイトは,null ワイド文字 (
pwc が NULL ポインタでない場合に格納される値) に対応するマルチバイト文字を完成させます。 null バイトに対応するワイド文字コードはゼロです。
|
-1
|
エンコーディング・エラーを示します。次の
n 個以下のバイトは,完全で有効なマルチバイト文字を構成しません。
errno
は
EILSEQ
に設定されます。変換状態は未定義です。
|
-2
|
不完全な,しかし有効なマルチバイト文字の一部でありうるバイト列であることを示します (n 個すべてのバイトが処理されています)。
|
|