Manpages

名 前

mbrlen − 次 の マ ル チ バ イ ト 文 字 の 長 さ を バ イ ト 数 で 返 す

書 式

#include <wchar.h>

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 を 返 し errnoEILSEQ が 設 定 さ れ る 。 こ の 場 合 の *ps へ の 影 響 は 未 定 義 で あ る 。

ps が NULL な ら ば 、 代 り に mbrlen() 関 数 の み が 使 用 す る 静 的 で 名 前 の な い 状 態 が 使 用 さ れ る 。

返 り 値

ナ ル ワ イ ド 文 字 以 外 の 文 字 を 確 認 し た 場 合 に は 、 mbrlen() 関 数 は s か ら 始 ま る マ ル チ バ イ ト 列 か ら 使 用 し た バ イ ト 数 を 返 す 。 ナ ル ワ イ ド 文 字 が 確 認 さ れ た 場 合 に は ゼ ロ を 返 す 。 不 正 な マ ル チ バ イ ト 列 に 遭 遇 し た 場 合 に は (size_t) −1 を 返 し errnoEILSEQ を 設 定 す る 。 完 全 な マ ル チ バ イ ト 文 字 を 解 析 で き な か っ た 場 合 に は (size_t) −2 を 返 す 。 こ れ は n を 増 さ な け れ ば な ら な い こ と を 意 味 す る 。

属 性

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

mbrlen() 関 数 は 、 例 外 付 き の ス レ ッ ド セ ー フ で あ る 。 ps パ ラ メ ー タ ー が NULL で 呼 び 出 さ れ た 場 合 は ス レ ッ ド セ ー フ で は な い 。

準 拠

C99.

注 意

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

関 連 項 目

mbrtowc(3)

こ の 文 書 に つ い て

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