mbtowc
— convert a
character to a wide-character code
Standard C Library (libc, -lc)
#include
<stdlib.h>
int
mbtowc
(wchar_t * restrict
wcharp, const char * restrict mbchar,
size_t nbytes);
The
mbtowc
()
function converts a multibyte character mbchar into a
wide character according to the current conversion state, and stores the
result in the object pointed to by wcharp. Up to
nbytes bytes are examined.
A call with a null mbchar pointer returns
nonzero if the current encoding requires shift states, zero otherwise; if
shift states are required, the shift state is reset to the initial
state.
If mbchar is NULL
,
the mbtowc
() function returns nonzero if shift
states are supported, zero otherwise.
Otherwise, if mbchar is not a null pointer,
mbtowc
() either returns 0 if
mbchar represents the null wide character, or returns
the number of bytes processed in mbchar, or returns -1
if no multibyte character could be recognized or converted. In this case,
mbtowc
()'s internal conversion state is
undefined.
The mbtowc
() function will fail if:
- [
EILSEQ
]
- An invalid multibyte sequence was detected.
- [
EINVAL
]
- The internal conversion state is invalid.
The mbtowc
() function conforms to
ISO/IEC 9899:1999
(“ISO C99”).