The
mbrtowc(),
mbrtoc16()
and
mbrtoc32()
functions inspect at most
n
bytes pointed to by
s
to determine the number of bytes needed to complete the next multibyte
character.
If a character can be completed, and
pc
is not
NULL,
the wide character which is represented by
s
is stored in the
wchar_t,
char16_t
or
char32_t
it points to.
If
s
is
NULL,
these functions behave as if
pc
was
NULL,
s
was an empty string
("")
and
n
was 1.
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 a single
char16_t
is not large enough to represent certain multibyte characters, the
mbrtoc16()
function may need to be invoked multiple times to convert a single
multibyte character sequence.