The
wcrtomb(),
c16rtomb()
and
c32rtomb()
functions store a multibyte sequence representing the
wide character
c,
including any necessary shift sequences, to the
character array
s,
storing a maximum of
MB_CUR_MAX
bytes.
If
s
is
NULL,
these functions behave as if
s
pointed to an internal buffer and
c
was a null wide character (L'\0').
The
mbstate_t
argument,
ps,
is used to keep track of the shift state.
If it is
NULL,
these functions use an internal, static
mbstate_t
object, which is initialized to the initial conversion state
at program startup.
As certain multibyte characters may only be represented by a series of
16-bit characters, the
c16rtomb()
may need to invoked multiple times before a multibyte sequence is
returned.