mblen — determine number of bytes in next multibyte character
#include <stdlib.h>
int
mblen( |
const char * | s, |
size_t | n) ; |
If s
is not a NULL
pointer, the mblen
() function
inspects at most n
bytes of the multibyte string starting at s
and extracts the next
complete multibyte character. It uses a static anonymous
shift state only known to the mblen function. If the
multibyte character is not the null wide character, it
returns the number of bytes that were consumed from
s
. If the multibyte
character is the null wide character, it returns 0.
If the n
bytes
starting at s
do not
contain a complete multibyte character, mblen
() returns −1. This can happen
even if n
>=
MB_CUR_MAX
, if the multibyte
string contains redundant shift sequences.
If the multibyte string starting at s
contains an invalid multibyte
sequence before the next complete character, mblen
() also returns −1.
If s
is a NULL
pointer, the mblen
() function
resets the shift state, only known to this function, to the
initial state, and returns non-zero if the encoding has
non-trivial shift state, or zero if the encoding is
stateless.
The mblen
() function returns
the number of bytes parsed from the multibyte sequence
starting at s
, if a
non-null wide character was recognized. It returns 0, if a
null wide character was recognized. It returns −1, if
an invalid multibyte sequence was encountered or if it
couldn't parse a complete multibyte character.
The behavior of mblen
()
depends on the LC_CTYPE
category of the current locale.
The function mbrlen(3) provides a better interface to the same functionality.
|