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