Provided by: manpages-posix-dev_2.16-1_all bug

NAME

       mbrlen - get number of bytes in a character (restartable)

SYNOPSIS

       #include <wchar.h>

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

DESCRIPTION

       If  s is not a null pointer, mbrlen() shall determine the number of bytes constituting the
       character pointed to by s. It shall be equivalent to:

              mbstate_t internal;
              mbrtowc(NULL, s, n, ps != NULL ? ps : &internal);

       If ps is a null pointer, the mbrlen()  function  shall  use  its  own  internal  mbstate_t
       object,  which  is  initialized  at  program  start-up  to  the  initial conversion state.
       Otherwise, the mbstate_t object pointed to by ps shall be used to completely describe  the
       current  conversion  state  of the associated character sequence. The implementation shall
       behave as if no function defined in this volume of IEEE Std 1003.1-2001 calls mbrlen().

       The behavior of this function is affected by the LC_CTYPE category of the current locale.

RETURN VALUE

       The mbrlen() function shall return the first of the following that applies:

       0      If the next n or fewer bytes complete the character that corresponds  to  the  null
              wide character.

       positive
              If  the  next n or fewer bytes complete a valid character; the value returned shall
              be the number of bytes that complete the character.

       (size_t)-2
              If the next n bytes contribute to an incomplete but  potentially  valid  character,
              and  all  n  bytes  have  been  processed.  When  n  has  at least the value of the
              {MB_CUR_MAX} macro, this case can only occur if s points at a sequence of redundant
              shift sequences (for implementations with state-dependent encodings).

       (size_t)-1
              If  an  encoding  error  occurs,  in  which  case  the next n or fewer bytes do not
              contribute to a complete and valid character.  In  this  case,  [EILSEQ]  shall  be
              stored in errno and the conversion state is undefined.

ERRORS

       The mbrlen() function may fail if:

       EINVAL ps points to an object that contains an invalid conversion state.

       EILSEQ Invalid character sequence is detected.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       mbsinit() , mbrtowc() , the Base Definitions volume of IEEE Std 1003.1-2001, <wchar.h>

COPYRIGHT

       Portions  of  this  text  are  reprinted  and  reproduced in electronic form from IEEE Std
       1003.1, 2003 Edition, Standard for Information Technology  --  Portable  Operating  System
       Interface  (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by
       the Institute of Electrical and Electronics Engineers, Inc and  The  Open  Group.  In  the
       event  of  any  discrepancy  between this version and the original IEEE and The Open Group
       Standard, the original IEEE and The Open Group  Standard  is  the  referee  document.  The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .