Man page - mbsinit(3)

Packages contains this manual

Available languages:

en fr pt_BR es ja ru ro

Manual

MBSINIT

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

名 前

mbsinit - 初 期 シ フ ト 状 態 か ど う か を 検 査 す る

書 式

#include <wchar.h>

int mbsinit(const mbstate_t * ps );

説 明

文 字 を マ ル チ バ イ ト 表 現 と ワ イ ド 文 字 表 現 の 間 で 変 換 す る 場 合 に は mbstate_t 型 の 変 換 状 態 を 使 用 す る 。 文 字 列 の 変 換 は 有 限 状 態 マ シ ン を 使 用 す る 。 い く ら か の 文 字 の 変 換 を 完 了 し た 後 に 、 残 り の 文 字 を 処 理 す る た め に 状 態 を 保 存 し て お く 必 要 が あ る か も し れ な い 。 こ の よ う な 変 換 状 態 は ISO-2022 や UTF-7 の よ う な 符 号 を 扱 う の に 必 要 と さ れ る 。

初 期 状 態 と は 文 字 列 の 変 換 を 開 始 す る 時 の 状 態 で あ る 。 状 態 に は 二 種 類 が 存 在 し 、 一 つ は mbsrtowcs (3) の よ う な マ ル チ バ イ ト を ワ イ ド 文 字 に 変 換 す る 関 数 で 使 用 さ れ る 。 も う 一 つ は wcsrtombs (3) の よ う な ワ イ ド 文 字 を マ ル チ バ イ ト に 変 換 す る 関 数 で 使 用 さ れ る 。 し か し 両 方 と も mbstate_t に 格 納 さ れ 、 初 期 状 態 と し て 同 じ 表 現 を 持 つ 。

8ビ ッ ト 符 号 に お い て は 全 て の 状 態 は 初 期 状 態 と 等 価 で あ る 。 UTF-8, EUC-*, BIG5, SJIS の よ う な 多 バ イ ト 符 号 に お い て ワ イ ド 文 字 か ら 多 バ イ ト 文 字 へ の 変 換 関 数 は 非 初 期 状 態 に は な ら な い 。 し か し mbrtowc (3) の よ う な 多 バ イ ト 文 字 か ら ワ イ ド 文 字 へ の 変 換 関 数 で は 文 字 の 解 釈 の 途 中 で 非 初 期 状 態 と な る 場 合 が あ る 。

初 期 状 態 の mbstate_t を 作 成 す る 方 法 の 一 つ は 、 そ れ を ゼ ロ に 設 定 す る こ と で あ る :

mbstate_t state;
memset(&state, 0, sizeof(state));

Linux に お い て は 以 下 の 方 法 で も 同 様 で あ る が 、 コ ン パ イ ラ ー の 警 告 が 生 成 さ れ る か も し れ な い 。

mbstate_t state = { 0 };

mbsinit () は *ps が 初 期 状 態 に 一 致 す る か ど う か を 検 査 す る 。

返 り 値

mbsinit () は *ps が 初 期 状 態 の 場 合 や NULL の 場 合 に は ゼ ロ 以 外 を 返 す 。 そ れ 以 外 の 場 合 に は ゼ ロ を 返 す 。

属 性

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

Image grohtml-25845-1.png

準 拠

POSIX.1-2001, POSIX.1-2008, C99.

注 意

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

関 連 項 目

mbrlen (3), mbrtowc (3), mbsrtowcs (3), wcrtomb (3), wcsrtombs (3)

こ の 文 書 に つ い て

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