mbrlen
MBRLEN(N)           Linux Programmer's Manual           MBRLEN(N)



NAME
       mbrlen - determine number of bytes in next multibyte char-
       acter

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 multi-
       byte  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(c)

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



GNU                         1999-07-25                  MBRLEN(N)