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