|
≫ |
|
|
|
HP OpenVMS HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)
マルチバイト文字を構成するバイトの数を決定します。
形式
#include <wchar.h>
size_t mbrlen (const char *s, size_t
n, mbstate_t *ps);
引数
sマルチバイト文字へのポインタ。
nマルチバイト文字を構成するバイト数の最大値。
ps
mbstate_tオブジェクトへのポインタ。 NULL ポインタが指定された場合,関数は内部の
mbstate_tオブジェクトを使用します。
mbstate_tは,状態依存のコードセットのための変換状態を保持する目的に使われる不透明のデータ型です。
説明
mbrlen関数は,次の呼び出しと等価です。
mbrtowc(NULL, s, n, ps != NULL ? ps : &internal)
|
internal は,
mbrlen関数の
mbstate_tオブジェクトです。
s がポイントするマルチバイト文字が n バイト以下であれば,関数は文字を構成するバイトの数を返します ( シフト・シーケンスを含みます )。
エンコーディング・エラーが発生するか,次の
n バイトが不完全な,しかし有効なマルチバイト文字の一部でありうるバイト列である場合,関数はそれぞれ - 1 または - 2 を返します。
mbrtowcも参照してください。
戻り値
x
|
マルチバイト文字を構成するバイトの数。
|
0
|
s が NULL ポインタまたは null バイトへのポインタであることを示します。
|
-1
|
エンコーディング・エラーが発生したことを示します。次の
n 個以下のバイトは,完全で有効なマルチバイト文字を構成しません。
errno
は EILSEQ に設定されます。変換状態は未定義です。
|
-2
|
不完全な,しかし有効なマルチバイト文字の一部でありうるバイト列であることを示します (
n 個すべてのバイトが処理されています)。
|
|