mbrlen
- get number of bytes in a character (restartable)
LIBRARY
Lb libc
SYNOPSIS
#include <wchar.h> size_t
mbrlen (const char * restrict s size_t n mbstate_t * restrict ps);
DESCRIPTION
The
mbrlen ();
function inspects at most
Fa n
bytes pointed to by
Fa s
to determine the number of bytes needed to complete the next
multibyte character.
The
Vt mbstate_t
argument,
Fa ps ,
is used to keep track of the shift state.
If it is
NULL
mbrlen ();
uses an internal, static
Vt mbstate_t
object, which is initialized to the initial conversion state
at program startup.
It is equivalent to:
"mbrtowc(NULL, s, n, ps);"
Except that when
Fa ps
is a
NULL
pointer,
mbrlen ();
uses its own static, internal
Vt mbstate_t
object to keep track of the shift state.
RETURN VALUES
The
mbrlen ();
functions returns:
0
The next
Fa n
or fewer bytes
represent the null wide character
(L'\0'
)
>0
The next
Fa n
or fewer bytes
represent a valid character,
mbrlen ();
returns the number of bytes used to complete the multibyte character.
Po Vt size_t Pc -2
The next
Fa n
contribute to, but do not complete, a valid multibyte character sequence,
and all
Fa n
bytes have been processed.
Po Vt size_t Pc -1
An encoding error has occurred.
The next
Fa n
or fewer bytes do not contribute to a valid multibyte character.
EXAMPLES
A function that calculates the number of characters in a multibyte
character string: