この関数の目的
wcstombs()は、ワイド文字列を複バイト文字列に変換する。
定義
#include <stdlib.h> int wcstombs(char *s, const wchar_t *pwcs, size_t n);
働き
この関数は pwcs が指すコードの連続を、初期シフト状態で始まる対応する複バイト文字の連続に変換し、 結果が n バイトに達する手前で止め、複バイト文字として s の指す配列オブジェクトに格納する。 各複バイト文字は、関数のシフト状態が変わらないことを除けば、 wctomb() の呼び出しによって変換されたかのように変換される。
s が指す配列オブジェクトの n 以前の要素は変更される。 重複するオブジェクトの間で複写が行われた時の動作は未定義である。
返り値は、対応する認識可能な複バイト文字が存在しないコードに出くわした場合は (size_t)-1
である。
そうでなければ、(存在すれば*)終端ヌル文字を除いた、変更されたバイト数を返す。
(*) 配列は返り値が n である場合にはヌル止めされない。
解説
wcstombs は WideChar String TO MultiByte String の略であろう。