|MBLEN(3)||Library Functions Manual||MBLEN(3)|
mblen — get number
of bytes in a multibyte character
char *s, size_t
function usually determines the number of bytes in a multibyte character
pointed to by s and returns it. This function shall
only examine max n bytes of the array beginning from
In state-dependent encodings, s
may point the special sequence bytes to change the shift-state. Although
such sequence bytes corresponds to no individual wide-character code, the
changes the own state by them and treats them as if they are a part of the
subsequent multibyte character.
Unlike mbrlen(3), the first n bytes pointed to by s need to form an entire multibyte character. Otherwise, this function causes an error.
mbtowc(NULL, s, n);
Calling any other functions in
libc never change
the internal state of the
except for calling setlocale(3) with
LC_CTYPE category changed to that of the current
locale. Such setlocale(3) calls cause
the internal state of this function to be indeterminate.
The behaviour of
affected by the
LC_CTYPE category of the current
There are special cases:
mblen() initializes its own internal state to an initial state, and determines whether the current encoding is state-dependent. This function returns 0 if the encoding is state-independent, otherwise non-zero.
mblen() always fails.
mblen() function also sets errno to indicate the error.
When s is equal to
mblen() function may cause an error in
the following case:
mblen() function conforms to
|March 29, 2022||OpenBSD-current|