Provided by: manpages-pt-dev_20040726-4_all bug

NAME

       mbrlen - determine number of bytes in next multibyte character

SYNOPSIS

       #include <wchar.h>

       size_t mbrlen (const char *s, size_t n, mbstate_t *ps);

DESCRIPTION

       The  mbrlen  function  inspects  at most n bytes of the multibyte string starting at s and
       extracts the next complete multibyte character.  It updates the shift state  *ps.  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 resets the
       shift state *ps to the initial state and returns 0.

       If the n bytes starting at s do not contain a complete multibyte character, mbrlen returns
       (size_t)(-2). 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, mbrlen returns (size_t)(-1) and sets errno  to  EILSEQ.  In  this
       case, the effects on *ps are undefined.

       If  ps  is  a  NULL pointer, a static anonymous state only known to the mbrlen function is
       used instead.

RETURN VALUE

       The mbrlen 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 (size_t)(-1) and sets errno to EILSEQ, if an  invalid
       multibyte  sequence  was  encountered.  It  returns  (size_t)(-2)  if  it couldn't parse a
       complete multibyte character, meaning that n should be increased.

CONFORMING TO

       ISO/ANSI C, UNIX98

SEE ALSO

       mbrtowc(3)

NOTES

       The behaviour of mbrlen depends on the LC_CTYPE category of the current locale.