WCSRTOMBS(3) | FreeBSD Library Functions Manual | WCSRTOMBS(3) |
名称
wcsrtombs, wcsnrtombs — ワイド文字列を文字列に変換する (再開可能)ライブラリ
Standard C Library (libc, -lc)書式
#include < wchar.h> size_t
wcsrtombs( char * restrict dst, const wchar_t ** restrict src, size_t len, mbstate_t * restrict ps);
size_t
wcsnrtombs( char * restrict dst, const wchar_t ** restrict src, size_t nwc, size_t len, mbstate_t * restrict ps);
解説
wcsrtombs() 関数は、 src によって間接的に指されたワイド文字の文字列を対応するマルチバイト文字列に変換して、 dst によって指された配列に格納します。 len バイト以上は、 dst に書き込まれません。dst が NULL であるなら、文字は、格納されません。
dst が NULL でないなら、 src によって指されたポインタは、変換が停止した文字の後の文字を指すように更新されます。ヌル文字に出会って変換が止まるなら、 *src は、 NULL に設定されます。
mbstate_t 引数、 ps は、シフト状態の経過を追うために使用されます。それが NULL であるなら、 wcsrtombs() は、プログラム始動時に初期の変換状態に初期化されている、内部の静的な mbstate_t オブジェクトを使用します。
wcsnrtombs() 関数は、 src によって指されたバッファから多くても nwc 文字を読み込んだ後に変換が停止することを除いて、 wcsrtombs() と同様に振る舞います。
戻り値
wcsrtombs() と wcsnrtombs() 関数は、成功すれば、 dst によって指された配列に格納された (終端のヌル文字を含まない) バイト数を返し、そうでなければ、 ( size_t)-1 を返します。エラー
wcsrtombs() と wcsnrtombs() 関数は、次の場合に失敗します:- [ EILSEQ]
- 無効のワイド文字に出会いました。
- [ EINVAL]
- 変換状態が無効です。
規格
wcsrtombs() 関数は、 ISO/IEC 9899:1999 (“ISO C99”) に適合しています。wcsnrtombs() 関数は、規格の拡張です。
July 21, 2004 | FreeBSD |