EN JA
MBSRTOWCS(3)
MBSRTOWCS(3) FreeBSD Library Functions Manual MBSRTOWCS(3)

名称

mbsrtowcs, mbsnrtowcs文字列をワイド文字列に変換する (再開可能)

ライブラリ

Standard C Library (libc, -lc)

書式

#include < wchar.h>

size_t
mbsrtowcs( wchar_t * restrict dst, const char ** restrict src, size_t len, mbstate_t * restrict ps);

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

解説

mbsrtowcs() 関数は、間接的に src によって指されたマルチバイト文字のシーケンスを対応するワイド文字のシーケンスに変換して、終端のヌル文字 ( '\0') に遭遇するまで dst によって指された wchar_t 配列に多くても len の長さを格納します。

dstNULL であるなら、文字は格納されません。

dstNULL でないなら、 src によって指されたポインタは変換が停止した 1 つ後の文字を指すように更新されます。ヌル文字が遭遇して変換が停止するなら、 *srcNULL に設定されます。

mbstate_t 引数、 ps は、シフト状態の経過を追うために使用されます。それが NULL, であるなら、 mbsrtowcs() はプログラム開始時に初期の変換状態に初期化される、内部の静的な mbstate_t オブジェクトを使用します。

mbsnrtowcs() 関数は、 src によって指されたバッファから多くても nms バイトを読み込んだ後に変換が停止することを除いて、 mbsrtowcs() と同様に振る舞います。

戻り値

mbsrtowcs() と mbsnrtowcs() 関数は、成功すれば dst によって指された配列に格納されたワイド文字の数を返します。そうでなければ、 ( size_t)-1 を返します。

エラー

mbsrtowcs() と mbsnrtowcs() 関数は、次の場合に失敗します:
[ EILSEQ]
無効のマルチバイト文字シーケンスに遭遇しました。
[ EINVAL]
変換状態は無効です。

規格

mbsrtowcs() 関数は、 ISO/IEC 9899:1999 (“ISO C99”) に適合しています。

mbsnrtowcs() 関数は規格の拡張です。

July 21, 2004 FreeBSD