Man Linux: Main Page and Category List

NAME

       mblen - get number of bytes in a character

SYNOPSIS

       #include <stdlib.h>

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

DESCRIPTION

       If s is not a null pointer, mblen() shall determine the number of bytes
       constituting the character pointed to by s. Except that the shift state
       of mbtowc() is not affected, it shall be equivalent to:

              mbtowc((wchar_t *)0, s, n);

       The  implementation  shall  behave  as  if  no function defined in this
       volume of IEEE Std 1003.1-2001 calls mblen().

       The behavior of this function is affected by the LC_CTYPE  category  of
       the current locale. For a state-dependent encoding, this function shall
       be placed into its initial state by a  call  for  which  its  character
       pointer  argument,  s,  is  a  null pointer. Subsequent calls with s as
       other than a null  pointer  shall  cause  the  internal  state  of  the
       function  to  be  altered as necessary. A call with s as a null pointer
       shall cause this function to return a non-zero value if encodings  have
       state  dependency,  and  0  otherwise.  If  the  implementation employs
       special bytes to change the shift state, these bytes shall not  produce
       separate  wide-character  codes,  but shall be grouped with an adjacent
       character. Changing the LC_CTYPE category causes  the  shift  state  of
       this function to be unspecified.

RETURN VALUE

       If  s is a null pointer, mblen() shall return a non-zero or 0 value, if
       character encodings, respectively, do or do  not  have  state-dependent
       encodings.  If  s  is not a null pointer, mblen() shall either return 0
       (if s points to the null byte), or return  the  number  of  bytes  that
       constitute  the  character  (if  the next n or fewer bytes form a valid
       character), or return -1 (if they do not form a valid  character)   and
       may  set  errno  to  indicate  the  error.   In no case shall the value
       returned be greater than n or the value of the {MB_CUR_MAX} macro.

ERRORS

       The mblen() function may fail if:

       EILSEQ Invalid character sequence is detected.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       mbtowc() , mbstowcs() , wctomb() , wcstombs() ,  the  Base  Definitions
       volume of IEEE Std 1003.1-2001, <stdlib.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 .