Man page - mbsnrtowcs(3)

Packages contains this manual

Available languages:

en fr es ja ru ro

Manual

MBSNRTOWCS

名 前
書 式
説 明
返 り 値
属 性
準 拠
注 意
関 連 項 目
こ の 文 書 に つ い て

名 前

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

書 式

#include <wchar.h>

size_t mbsnrtowcs(wchar_t * dest , const char ** src ,
size_t
nms , size_t len , mbstate_t * ps );

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 ( feature_test_macros (7) 参 照 ):

mbsnrtowcs ():

glibc 2.10 以 降 :

_POSIX_C_SOURCE >= 200809L

glibc 2.10 よ り 前 :

_GNU_SOURCE

説 明

mbsnrtowcs () 関 数 は mbsrtowcs (3) 関 数 に 似 て い る が 、 変 換 す る バ イ ト 数 が *src か ら 始 ま る 最 大 nms バ イ ト に 制 限 さ れ て い る 点 が 異 な っ て い る 。

dest が NULL で な け れ ば mbsnrtowcs () 関 数 は *src か ら の マ ル チ バ イ ト 文 字 列 の 最 大 nms ま で を dest か ら の ワ イ ド 文 字 列 に 変 換 す る 。 最 大 len 文 字 の ワ イ ド 文 字 が dest に 書 き 込 ま れ る 。 同 時 に シ フ ト 状 態 *ps を 更 新 す る 。 変 換 は mbrtowc(dest, *src, n, ps) を 、 こ の 呼 び 出 し が 成 功 す る 限 り 、 繰 り 返 し 実 行 し た の と 実 質 的 に 同 様 で あ る 。 こ こ で の n は 正 の 数 で あ り 、 繰 り 返 し ご と に dest が 1 増 加 さ せ ら れ 、 *src が 消 費 し た バ イ ト 数 だ け 増 加 さ せ ら れ る 。 変 換 は 以 下 の 三 つ の い ず れ か の 条 件 で 停 止 す る :

1.

不 正 な マ ル チ バ イ ト 列 に 遭 遇 し た 。 こ の 場 合 に は *src は 不 正 な マ ル チ バ イ ト 列 を 指 す よ う に し て 、 (size_t) -1 を 返 し 、 errno EILSEQ を 設 定 す る 。

2.

nms 制 限 に よ っ て 強 制 的 に 停 止 す る か 、 len 文 字 の L'\0' 以 外 の ワ イ ド 文 字 を dest に 格 納 し た 場 合 。 こ の 場 合 は *src は 次 に 変 換 さ れ る マ ル チ バ イ ト 列 を 指 す よ う に し て 、 dest に 書 き 込 ま れ た ワ イ ド 文 字 の 数 を 返 す 。

3.

マ ル チ バ イ ト 文 字 列 が 終 端 の ヌ ル ワ イ ド 文 字 ('\0') ま で 含 め て 完 全 に 変 換 さ れ た 場 合 。 (こ の 時 、 副 作 用 と し て *ps が 初 期 状 態 に 戻 さ れ る 。 ) こ の 場 合 は *src に は NULL が 設 定 さ れ 、 dest に 書 き 込 ま れ た 文 字 数 (終 端 の ヌ ル ワ イ ド 文 字 は 含 ま れ な い ) を 返 す 。

According to POSIX.1, if the input buffer ends with an incomplete character, it is unspecified whether conversion stops at the end of the previous character (if any), or at the end of the input buffer. The glibc implementation adopts the former behavior.

dest が NULL の 場 合 、 len は 無 視 さ れ 、 上 記 と 同 様 の 変 換 が 行 わ れ る が 、 変 換 さ れ た ワ イ ド 文 字 は メ モ リ ー に 書 き 込 ま れ ず 、 変 換 先 の 上 限 が 存 在 し な い 。

上 記 の ど ち ら の 場 合 で も 、 ps が NULL な ら ば 、 代 り に mbsnrtowcs () 関 数 の み が 使 用 す る 静 的 で 名 前 の な い 状 態 が 使 用 さ れ る 。

プ ロ グ ラ マ ー は dest に 最 低 で も len ワ イ ド 文 字 を 書 き 込 む こ と が で き る 空 間 が あ る こ と を 保 証 し な け れ ば な ら な い 。

返 り 値

mbsnrtowcs () 関 数 は ワ イ ド 文 字 列 に 変 換 完 了 し た ワ イ ド 文 字 の 数 を 返 す 。 終 端 の ナ ル ワ イ ド 文 字 は 含 ま な い 。 不 正 な マ ル チ バ イ ト 列 に 遭 遇 し た 場 合 に は (size_t) -1 を 返 し 、 errno EILSEQ を 設 定 す る 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-46412-1.png

準 拠

POSIX.1-2008.

注 意

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

ps に NULL を 渡 し た 際 の 動 作 は マ ル チ ス レ ッ ド セ ー フ で な い 。

関 連 項 目

iconv (3), mbrtowc (3), mbsinit (3), mbsrtowcs (3)

こ の 文 書 に つ い て

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