mblen(3) 次のマルチバイト文字のバイト数を返す

書式

#include <stdlib.h>


int mblen(const char *s, size_t n);

説明

s が NULL でなければ、 mblen() 関数は s から始まる最大 n バイトのマルチバイト文字列を検査して、 次の完全なマルチバイト文字を取り出す。これには mblen() 関数のみが使用する静的で名前のないシフト状態が使用される。 マルチバイト文字がヌルワイド文字でなければ s から消費される バイト数を返す。マルチバイト文字がヌルワイド文字ならば 0 を返す。

s から始まる n バイトが完全なマルチバイト文字を含んで いなければ、 mblen() は -1 を返す。マルチバイト文字列 に冗長なシフトシーケンスが含まれていると、 nMB_CUR_MAX 以上の場合にも このようなことが起こりえる。

s から始まるマルチバイト文字列が次の完全な文字の前に 不正なマルチバイト列を含んでいる場合にも、 mblen() は -1 を返す。

s が NULL ならば、 mblen() 関数はこの関数のみが 使用するシフト状態を初期化状態に戻し、シフト状態を使用した文字符号の場合に はゼロ以外を、文字符号がシフト状態を持たない場合にはゼロを返す。

返り値

mblen() 関数は s から始まるマルチバイト列を検査して ヌルワイド文字以外を確認した場合にはそのバイト数を返す。 ヌルワイド文字を確認した場合にはゼロを返す。不正なマルチバイト列に 遭遇した場合や完全なマルチバイト文字を解析できなかった場合には -1 を返す。

属性

マルチスレッディング (pthreads(7) 参照)

mblen() 関数はスレッドセーフではない。

準拠

C99.

注意

mblen() の動作は現在のロケールの LC_CTYPE カテゴリに依存している。

mbrlen(3) 関数は同じ機能のより良いインタフェースを提供する。

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。