mbrlenのヘルプ・マニュアル
日本語 英語
mbrlen --help
man mbrlen
MBRLEN(3) Linux Programmer’s Manual MBRLEN(3)
名前
mbrlen - 次のマルチバイト文字の長さをバイト数で返す
書式
#include
size_t mbrlen(const char *s, size_t n, mbstate_t *ps);
説明
mbrlen() 関数は s から始まるマルチバイト文字列を最大 n バイト調べて次の
完全なマルチバイト文字を取り出す。同時にシフト状態 *ps を更新する。マル
チバイト文字がナルワイド文字でなければ s から消費するバイト数を返す。ナ
ルワイド文字ならばシフト状態 *ps を初期状態に戻して、0 を返す。
s から始まる n バイトの文字列が完全なマルチバイト文字を含んでいない場合
には mbrlen() は (size_t) -2 を返す。マルチバイト文字列に冗長なシフトシ
ーケンスを含まれていると n >= MB_CUR_MAX の時にもこのようなことが起こり
える。
s から始まるマルチバイト文字列が、次の完全な文字の前に不正なマルチバイ
ト列を含んでいる場合には、 mbrlen() は (size_t) -1 を 返 し errno に
EILSEQ が設定される。この場合の *ps への影響は未定義である。
ps が NULL ポインターならば、代りに mbrlen() 関数のみが使用する静的で名
前のない状態が使用される。
返り値
ナルワイド文字以外の文字を確認した場合には、 mbrlen() 関数は s から始ま
る マルチバイト列から使用したバイト数を返す。ナルワイド文字が確認された
場合にはゼロを返す。不正なマルチバイト列に遭遇した場合には (size_t) -1
を返し errno に EILSEQ を設定する。完全なマルチバイト文字を解析できなか
った場合には (size_t) -2 を返す。これは n を増さなければならないこと を
意味する。
準拠
C99.
注意
mbrlen() の動作は現在のロケールの LC_CTYPE カテゴリに依存している。
関連項目
mbrtowc(3)
GNU 1999-07-25 MBRLEN(3)
MBRLEN(3) Linux Programmer’s Manual MBRLEN(3)
NAME
mbrlen - determine number of bytes in next multibyte character
SYNOPSIS
#include
size_t mbrlen(const char *s, size_t n, mbstate_t *ps);
DESCRIPTION
The mbrlen() function inspects at most n bytes of the multibyte string
starting at s and extracts the next complete multibyte character. It
updates the shift state *ps. If the multibyte character is not the
null wide character, it returns the number of bytes that were consumed
from s. If the multibyte character is the null wide character, it
resets the shift state *ps to the initial state and returns 0.
If the n bytes starting at s do not contain a complete multibyte char-
acter, mbrlen() returns (size_t) -2. This can happen even if n >=
MB_CUR_MAX, if the multibyte string contains redundant shift sequences.
If the multibyte string starting at s contains an invalid multibyte
sequence before the next complete character, mbrlen() returns
(size_t) -1 and sets errno to EILSEQ. In this case, the effects on *ps
are undefined.
If ps is a NULL pointer, a static anonymous state only known to the
mbrlen() function is used instead.
RETURN VALUE
The mbrlen() function returns the number of bytes parsed from the
multibyte sequence starting at s, if a non-null wide character was rec-
ognized. It returns 0, if a null wide character was recognized. It
returns (size_t) -1 and sets errno to EILSEQ, if an invalid multibyte
sequence was encountered. It returns (size_t) -2 if it couldn’t parse
a complete multibyte character, meaning that n should be increased.
CONFORMING TO
C99.
NOTES
The behavior of mbrlen() depends on the LC_CTYPE category of the cur-
rent locale.
SEE ALSO
mbrtowc(3)
COLOPHON
This page is part of release 3.22 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
GNU 1999-07-25 MBRLEN(3)