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