Provided by: manpages-dev_3.54-1ubuntu1_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 known only 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.

ATTRIBUTES

   Multithreading (see pthreads(7))
       The mbrlen() function is thread-safe with exceptions.  It is  not  thread-safe  if  called
       with a NULL ps parameter.

CONFORMING TO

       C99.

NOTES

       The behavior of mbrlen() depends on the LC_CTYPE category of the current locale.

SEE ALSO

       mbrtowc(3)

COLOPHON

       This  page  is  part of release 3.54 of the Linux man-pages project.  A description of the
       project,    and    information    about    reporting    bugs,    can    be    found     at
       http://www.kernel.org/doc/man-pages/.