p Each characters will be converted as if .Xr wcrtomb 3 is continuously called, except the internal state of .Xr wcrtomb 3 will not be affected.
p After conversion, if .Fa s is not NULL pointer, the pointer object pointed by .Fa pwcs is NULL pointer (if the conversion is stopped due to reach a null wide character) or the first byte of the character just after the last character converted.
p If .Fa s is not null pointer and the conversion is stopped due to reach a null wide character, the .Fn wcsrtombs places the state object pointed by .Fa ps to an initial state after the conversion is taken place.
p The behaviour of the .Fn wcsrtombs is affected by LC_CTYPE category of the current locale.
p There are special cases: l -tag -width 012345678901 t "s == NULL" The .Fn wcsrtombs returns the number of bytes to store the whole multibyte character string corresponding to the wide character string pointed by .Fa pwcs , not including the terminating null byte. In this case, .Fa n is ignored. t "pwcs == NULL || *pwcs == NULL" undefined (may causes the program to crash). t "ps == NULL" The .Fn wcsrtombs uses its own internal state object to keep the conversion state, instead of .Fa ps mentioned in this manual page.
p
Calling any other functions in the
.Lb libc
never change the internal
state of the
.Fn wcsrtombs ,
that is initialized at startup time of the program.
.El
----------------------------------------------------------------------
.Sh RETURN VALUES
The
.Fn wcsrtombs
returns:
l -tag -width 012345678901 t 0 or positive number of bytes stored to the array pointed by
.Fa s ,
except for a null byte.
There is no cases that the value returned is greater than
.Fa n
(unless
.Fa s
is a null pointer).
If the return value is equal to
.Fa n ,
the string pointed by
.Fa s
will not be null-terminated.
t (size_t)-1 .Fa pwcs
points the string containing invalid wide character.
The
.Fn wcsrtombs
also sets errno to indicate the error.
.El
----------------------------------------------------------------------
.Sh ERRORS
The
.Fn wcsrtombs
may causes an error in the following case:
l -tag -width Er t Bq Er EILSEQ .Fa pwcs
points the string containing invalid wide character.
.El
----------------------------------------------------------------------
.Sh SEE ALSO
.Xr setlocale 3 ,
.Xr wcrtomb 3 ,
.Xr wcstombs 3
----------------------------------------------------------------------
.Sh STANDARDS
The
.Fn wcsrtombs
function conforms to
.St -ansiC .
The restrict qualifier is added at
.St -isoC99 .