NAME
mblen, mblen_l
— get number of bytes in a
character
LIBRARY
library “libc”
SYNOPSIS
#include
<stdlib.h>
int
mblen(const
char *mbchar, size_t
nbytes);
#include
<xlocale.h>
int
mblen_l(const
char *mbchar, size_t
nbytes, locale_t
locale);
DESCRIPTION
Themblen()
and mblen_l() functions compute the length in bytes of
a multibyte character mbchar according to a conversion
state. Up to nbytes bytes are examined.
A call with a null mbchar pointer returns nonzero if the locale requires shift states, zero otherwise; if shift states are required, the shift state is reset to the initial state.
The
mblen_l()
function takes an explicit locale argument, whereas
the mblen() function uses the current global or
per-thread locale.
RETURN VALUES
If mbchar is NULL,
the mblen() and mblen_l()
functions return nonzero if shift states are supported, zero otherwise.
Otherwise, if mbchar is not a null pointer,
mblen() and mblen_l() either
return 0 if mbchar represents the null wide character,
or return the number of bytes processed in mbchar, or
return -1 if no multibyte character could be recognized or converted. In
this case, mblen()'s and
mblen_l()'s internal conversion states are
undefined.
ERRORS
The mblen() and
mblen_l() functions will fail if:
- [
EILSEQ] - An invalid multibyte sequence was detected.
- [
EINVAL] - The internal conversion state is not valid.
SEE ALSO
STANDARDS
The mblen() function conforms to
ISO/IEC 9899:1999
(“ISO C99”).