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

再開始可能な多バイト文字・ワイド文字変換関数
mbrtowc
ヘッダ #include <wchar.h>
形 式 size_t mbrtowc(wchar_t * restrict pwc, const char * restrict s, size_t n, mbstate_t * restrict ps);
機 能 sが空ポインタであれば、次の呼出しと等価である。
  mbrtowc(NULL, "", 1, ps)
このとき、仮引数pwc及びnの値は無視する。
sが空ポインタでなければ、sが指すバイトで始まる最大nバイトを検査し、次の多バイト文字を完結するために必要な(シフトシーケンスを含めた)バイト数を求める。次の多バイト文字が完結し、かつそれが正しければ、対応するワイド文字の値を求める。次に、pwcが空ポインタでないならば、pwcが指すオブジェクトにその値を格納する。対応するワイド文字がナルワイド文字ならば、結果の状態は、初期変換状態となる。
返却値 その時点の変換状態に基づき、次の中で該当する最初のものを返す。
0 … 次のn個以下のバイトによってナルワイド文字に対応する多バイト文字が完結する場合(ナルワイド文字を格納する)。
1以上n以下 … 次のn個以下のバイトによって正しい多バイト文字が完結する場合(対応するワイド文字を格納する)。返却する値は、多バイト文字を完結するバイト数とする。
(size_t)(-2) … 次のn個のバイトだけでは(正しいかもしれない)多バイト文字が完結せず、かつ、n個のバイトすべてが処理されている場合(値は格納しない)。
(size_t)(-1) … 表現形式エラーが発生する場合(値は格納しない)。この場合、次のn個以下のバイトが正しい多バイト文字の先頭ではあり得ない。マクロEILSEQの値をerrnoに格納し、変換状態は未規定とする。


BohYoh.comトップページへ