mbsrtowcs

多バイト文字列 (multibyte string) をワイド文字列 (wide string) に変換します.

#include <wchar.h>
size_t mbsrtowcs(
    wchar_t * restrict dst,
    const char ** restrict src,
    size_t len,
    mbstate_t * restrict ps
);

mbsrtowcs 関数は src が (間接的に) 指し,変換状態 ps で始まる多バイト文字列を対応するワイド文字列に変換し,dst が指す配列に格納します※1.変換は終端ナル文字 ('\0') まで行われます.

変換は以下の場合途中で終了します.

  • 正しい多バイト文字を形成しないバイトの列があった場合
  • dst が指す配列に len 個のワイド文字を格納した場合

変換が終端ナル文字によって終了し,dst が空ポインタ (NULL) でない場合は変換状態 ps は初期変換状態になります.

引数

  • dst: ワイド文字列へのダブルポインタ (変換後のワイド文字列が格納されます)
  • src: 変換する多バイト文字列
  • len: 変換する多バイト文字の個数
  • ps: 変換状態

戻り値

  • 変換成功時: 変換に成功した多バイト文字の個数 (終端ナル文字は含みません)
  • 表現形式エラー時: (size_t)(-1) ※2

※1: dst が空ポインタでない場合のみです.

※2: errno に EILSEQマクロの値を格納します.また変換状態 ps がどうなるかは未規定です.

Cプログラマの必読書

たくさんあるC言語関連の書籍の中でも特に役に立った本です.よかったら参考にしてみてください.

C実践プログラミング 第3版

C言語の実践的参考書.少々値段は張りますが初心者を脱しようとしている人は絶対に読むべきです.
文法だけでなく,コーディングスタイルやデバッグなど文字通り「実践的」なことが書かれているので非常にためになります. オライリーの本は,読みにくい本が多いのですが本書はとても読みやすくオススメです.


C言語ポインタ完全制覇 (標準プログラマーズライブラリ)

ポインタの解説書としては最高の書籍です.
この1冊でポインタを完全に理解することができます.全くの初学者が読むには敷居が高いですが,入門書を読み終えた後に読むと非常に有益です.