GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


man:mbrlen

MBRLEN(3) Linux Programmer's Manual MBRLEN(3)

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  char-
     acter,  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 NULL, 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 rec-
     ognized.   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

     For  an  explanation  of  the  terms  used   in   this   section,   see
     attributes(7).
     +----------+---------------+---------------------------+
     |Interface | Attribute     | Value                     |
     +----------+---------------+---------------------------+
     |mbrlen()  | Thread safety | MT-Unsafe race:mbrlen/!ps |
     +----------+---------------+---------------------------+

CONFORMING TO

     POSIX.1-2001, POSIX.1-2008, C99.

NOTES

     The  behavior  of mbrlen() depends on the LC_CTYPE category of the cur-
     rent locale.

SEE ALSO

     mbrtowc(3)

COLOPHON

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

GNU 2015-08-08 MBRLEN(3)

/data/webs/external/dokuwiki/data/pages/man/mbrlen.txt · Last modified: 2019/05/17 09:32 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki