p Each character 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 a null pointer, the pointer object pointed to by .Fa pwcs is a null pointer (if the conversion is stopped due to reaching a nul wide character) or the first byte of the character just after the last character converted.
p If .Fa s is not a null pointer and the conversion is stopped due to reaching a nul wide character, .Fn wcsrtombs places the state object pointed to by .Fa ps to an initial state after the conversion is taken place.
p The behaviour of .Fn wcsrtombs is affected by the .Dv LC_CTYPE category of the current locale.
p These are the special cases: l -tag -width 012345678901 t "s == NULL" .Fn wcsrtombs returns the number of bytes to store the whole multibyte character string corresponding to the wide-character string pointed to by .Fa pwcs , not including the terminating nul byte. In this case, .Fa n is ignored. t "pwcs == NULL || *pwcs == NULL" Undefined (may cause the program to crash). t "ps == NULL" .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
.Lb libc
never changes the internal
state of
.Fn wcsrtombs ,
which is initialized at startup time of the program.
.El
----------------------------------------------------------------------
.Sh RETURN VALUES
.Fn wcsrtombs
returns:
l -tag -width 012345678901 t 0 or positive Number of bytes stored in the array pointed to by
.Fa s ,
except for a nul byte.
There are 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 to by
.Fa s
will not be nul-terminated.
t (size_t)-1 .Fa pwcs
points to a string containing an invalid wide character.
The
.Fn wcsrtombs
also sets
.Va errno
to indicate the error.
.El
----------------------------------------------------------------------
.Sh ERRORS
.Fn wcsrtombs
may cause an error in the following case:
l -tag -width Er t Bq Er EILSEQ .Fa pwcs
points to a string containing an 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 -isoC-99 .