wcsrtombs
wcsrtombs
size_t ``wcsrtombs``(char *dst, const wchar_t **src, size_t len, mbstate_t *ps);
The function converts the wide-character string beginning at *src
to a sequence of multibyte characters as if by repeated calls of the form:
x = wcrtomb(dst ? dst : buf, *src, ps != 0 ? ps : &internal)
where buf
is an array of type char and internal
is an object of type mbstate_t
, both internal to the wcsrtombs
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 wcsrtombs
function stores len
bytes, at most, by calls to wcrtomb
. The function effectively increments dst
by x
and *src
by one after each call to wcrtomb
that stores a complete converted multibyte character in the remaining space available. After a call that stores a complete null multibyte character at dst
(including any shift sequence needed to restore the initial shift state), the function 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 towcrtomb
returns(``size_t``)-1
, indicating that it has detected an invalid wide-character code.- The number of bytes successfully converted, not including the terminating null byte.