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 の長さを格納します。
dst が NULL であるなら、文字は格納されません。
dst が NULL でないなら、 src によって指されたポインタは変換が停止した 1 つ後の文字を指すように更新されます。ヌル文字が遭遇して変換が停止するなら、 *src は NULL に設定されます。
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 |