size_t
mbsrtowcs
(wchar_t *dst, const char **src, size_t len, mbstate_t *ps);
The function converts the multibyte string beginning at *src
to a sequence of wide characters as if by repeated calls of
the form:
x = mbrtowc(dst, *src, n, ps != 0 ? ps : &internal)
where n
is some value > 0 and internal
is an object of type mbstate_t
internal to the mbsrtowcs
function. At
program startup, internal
is initialized to the initial conversion state. No other library function alters the value stored
in internal
.
If dst
is not a null pointer, the mbsrtowcs
function stores len
wide characters , at most, by calls to mbrtowc
. The
function effectively increments dst
by one and *src
by x
after each call to mbrtowc
that stores a converted wide
character. After a call that returns zero, mbsrtowcs
stores a null wide character at dst
and stores a null pointer at
*src
.
If dst
is a null pointer, len
is effectively assigned a large value.
The function returns:
(
size_t
)-1
, if a call to mbrtowc
returns (
size_t
)-1
, indicating that it has detected an encoding error before
completing the next multibyte character.