NAME
mbtowc
, mbtowc_l
— convert a character to a
wide-character code
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include
<stdlib.h>
int
mbtowc
(wchar_t *restrict pwc,
const char *restrict s, size_t
n);
#include
<stdlib.h>
#include <xlocale.h>
int
mbtowc_l
(wchar_t *restrict pwc,
const char *restrict s, size_t
n, locale_t loc);
DESCRIPTION
The
mbtowc
()
function converts a multibyte character s into a wide
character, according to the current conversion state, and stores the result
in the object pointed to by pwc. Up to
n bytes are examined.
A call with a null s 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.
While the
mbtowc
()
function uses the current locale, the
mbtowc_l
()
function may be passed a locale directly. See
xlocale(3) for more information.
RETURN VALUES
If s is NULL
, the
mbtowc
() function returns nonzero if shift states
are supported, zero otherwise.
Otherwise, if s is not a null pointer,
mbtowc
() either returns 0 if s
represents the null wide character, or returns the number of bytes processed
in s, or returns -1 if no multibyte character could be
recognized or converted. In this case, mbtowc
()'s
internal conversion state is undefined.
ERRORS
The mbtowc
() function will fail if:
- [
EILSEQ
] - An invalid multibyte sequence was detected.
- [
EINVAL
] - The internal conversion state is invalid.
SEE ALSO
btowc(3), mblen(3), mbrtowc(3), mbstowcs(3), multibyte(3), wctomb(3), xlocale(3)
STANDARDS
The mbtowc
() function conforms to
ISO/IEC 9899:1999
(“ISO C99”).