Man Linux: Main Page and Category List

NAME

       mblen - determine number of bytes in next multibyte character

SYNOPSIS

       #include <stdlib.h>

       int mblen(const char *s, size_t n);

DESCRIPTION

       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  is  greater
       than or equal to 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  nonzero
       if  the encoding has nontrivial shift state, or zero if the encoding is
       stateless.

RETURN VALUE

       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.

CONFORMING TO

       C99.

NOTES

       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.

SEE ALSO

       mbrlen(3)

COLOPHON

       This page is part of release 3.24 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/.