MBLEN(3)

NAME
mblen, mblen_l - get number of bytes in a character

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
The mblen() 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
mbrlen(3), mbtowc(3), multibyte(3), xlocale(3)

STANDARDS
The mblen() function conforms to isoC-99.