BohYoh.comトップページへ  mbsrtowcs
C言語 標準ライブラリ アルファベット順索引 ヘッダ別索引 ホームページへ C言語講座のページ

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


BohYoh.comトップページへ