Manpages

名 前

mbtowc − マ ル チ バ イ ト 列 を ワ イ ド 文 字 に 変 換 す る

書 式

#include <stdlib.h>

int mbtowc(wchar_t *pwc, const char *s, size_t n);

説 明

こ の 関 数 が 用 い ら れ る 場 合 、 通 常 s が NULL で な く pwc も NULL で な い 。 こ の 場 合 は mbtowc() 関 数 は s か ら 始 ま る 最 大 n バ イ ト の マ ル チ バ イ ト 文 字 列 を 検 査 し て 、 次 の 完 全 な マ ル チ バ イ ト 文 字 を 取 り 出 し 、 そ れ を ワ イ ド 文 字 に 変 換 し て *pwc に 格 納 す る 。 同 時 に mbtowc 関 数 の み が 使 用 す る 内 部 状 態 を 更 新 す る 。 s が ヌ ル バ イ ト ('\0') 以 外 を 指 し て い る 場 合 は 、 s か ら 消 費 す る バ イ ト 数 を 返 す 。 s が ヌ ル バ イ ト を 指 し て い る 場 合 に は 0 を 返 す 。

s か ら 始 ま る n バ イ ト が 完 全 な マ ル チ バ イ ト 文 字 を 含 ん で い な い 場 合 や 不 正 な マ ル チ バ イ ト 列 を 含 ん で い る 場 合 に は mbtowc() は −1 を 返 す 。 マ ル チ バ イ ト 文 字 列 に 冗 長 な シ フ ト シ ー ケ ン ス が 含 ま れ て い る と n >= MB_CUR_MAX の 場 合 も こ の よ う な こ と が 起 こ り え る 。

s が NULL で な く pwc が NULL の 場 合 は mbtowc() 関 数 は 上 記 と 同 様 に 動 作 す る が 、 変 換 し た ワ イ ド 文 字 は メ モ リ ー に は 書 き 込 ま れ な い 。 三 番 目 の 場 合 と し て s が NULL の 場 合 は pwcn は 無 視 さ れ る 。 mbtowc() 関 数 の み が 使 用 す る シ フ ト 状 態 は 初 期 状 態 に 戻 さ れ る 。 そ し て 文 字 符 号 が シ フ ト 状 態 に 依 存 す る な ら ば ゼ ロ 以 外 を 、 文 字 符 号 が 状 態 に よ ら な い な ら ば ゼ ロ を 返 す 。

返 り 値

s が NULL で な け れ ば mbtowc() 関 数 は s か ら 消 費 し た バ イ ト 数 を 、 s が ヌ ル 文 字 を 指 し て い る 場 合 は ゼ ロ を 、 変 換 に 失 敗 し た 場 合 は −1 を 返 す 。

s が NULL な ら ば mbtowc() 関 数 は 文 字 符 号 が シ フ ト 状 態 に 依 存 し て い れ ば ゼ ロ 以 外 を 、 状 態 に よ ら な け れ ば ゼ ロ を 返 す 。

準 拠

C99.

注 意

mbtowc() の 動 作 は 現 在 の ロ ケ ー ル の LC_CTYPE カ テ ゴ リ ー に 依 存 し て い る 。 こ の 関 数 は マ ル チ ス レ ッ ド で は 安 全 で は な い 。 mbrtowc(3) 関 数 は 同 じ 機 能 の よ り 良 い イ ン タ ー フ ェ ー ス を 提 供 す る 。

関 連 項 目

MB_CUR_MAX(3), mblen(3), mbrtowc(3), mbstowcs(3), wctomb(3), wcstombs(3)

こ の 文 書 に つ い て

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