C言語の標準ライブラリwcsrtombsのリファレンスです。
概要 | ワイド文字列を多バイト文字列に変換する。 |
ヘッダ | #include <wchar.h> |
I/F | size_t wcsrtombs(char * restrict dst, const wchar_t ** restrict src, size_t len, mbstate_t * restrict ps); |
戻り値 | 正しい多バイト文字に対応しないワイド文字があって変換が終了した場合は-1。それ以外の場合は、結果の多バイト文字の並びのバイト数(終端ナル文字は含めない)。 |
詳細 | wcsrtombs関数は、srcが間接的に指す配列内のワイド文字列を対応する多バイト文字列に変換する。ここで、多バイト文字列は、psが表す変換状態で始まる。 dstが空ポインタでないならば、変換された文字は、配列dstに格納する。変換は、終端ナルワイド文字まで続け、終端ナル文字も格納する。 正しい多バイト文字に対応しないワイド文字があった場合や次の多バイト文字を配列dstに格納するとlenバイトを超える場合には、変換は途中で終了する。 各変換は、wcrtomb関数を呼び出したのと同じ規則で行われる。dstが空ポインタでないならば、srcが指すポインタオブジェクトには、変換が終端ナルワイド文字に到達して終了した場合なら空ポインタを、変換された最後のワイド文字の直後の文字がもしあれば、そのアドレスを格納する。 変換が終端ナルワイド文字に到達して終了した場合には、結果の状態は初期変換状態である。 正しい多バイト文字に対応しないワイド文字があって変換が終了した場合には、表現形式エラー発生となる。その場合、wcsrtombs関数は、errnoにEILSEQを格納し、-1を返却する。変換状態は未定義である。 |