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”).