*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->NetBSD man pages -> mblen (3)              
Title
Content
Arch
Section
 

MBLEN(3)

Contents


NAME    [Toc]    [Back]

     mblen - get number of bytes consisting a multibyte character

LIBRARY    [Toc]    [Back]

     Standard C Library (libc, -lc)

SYNOPSIS    [Toc]    [Back]

     #include <stdlib.h>

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

DESCRIPTION    [Toc]    [Back]

     The mblen() function usually determines the number of bytes consisting in
     a multibyte character pointed by s and return it.  This function shall
     only examine max n bytes of the array beginning from s.

     In state-dependent encodings, s may point the special sequence bytes to
     change the shift-state.  Although such sequence bytes corresponds to no
     individual wide-character code, the mblen() changes the own state by them
     and treats them as if they are a part of the subsequence multibyte character.


     Unlike mbrlen(3), the first n bytes pointed by s need to form an entire
     multibyte character.  Otherwise, this function causes an error.

     mblen() is equivalent to the following call, except the internal state of
     the mbtowc(3) function is not affected:

     mbtowc(NULL, s, n);

     Calling any other functions in the Standard C Library (libc, -lc) never
     change the internal state of the mblen(), except for calling setlocale(3)
     with changing LC_CTYPE category of the current locale.  Such setlocale(3)
     call causes the internal state of this function to be indeterminate.

     The behaviour of the mblen() is affected by LC_CTYPE category of the current
 locale.

     There are special cases:

     s == NULL   The mblen() initializes its own internal state to an initial
                 state, and determines whether the current encoding is statedependent.
  This function returns 0 if the encoding is stateindependent,
 otherwise non-zero.

     n == 0      In this case, the first n bytes of the array pointed by s
                 never form a complete character.  Thus, the mblen() always
                 fails.

RETURN VALUES    [Toc]    [Back]

     In the usual cases, the mblen() returns:

     0           s points a null byte ('\0').

     positive    The value returned is a number of bytes for the valid multibyte
 character pointed by s.  There is no cases that this
                 value is greater than n or the value of MB_CUR_MAX macro.

     -1          s points an invalid or incomplete multibyte character.  The
                 mblen() also sets errno to indicate the error.

     In the case that s is equal to NULL, the mblen() returns:

     0           The current encoding is state-independent.

     non-zero    The current encoding is state-dependent.

ERRORS    [Toc]    [Back]

     The mblen() may causes an error in the following case:

     [EILSEQ]           s points an invalid or incomplete multibyte character.

SEE ALSO    [Toc]    [Back]

      
      
     mbrlen(3), mbtowc(3), setlocale(3)

STANDARDS    [Toc]    [Back]

     The mblen() function conforms to ANSI X3.159-1989 (``ANSI C'').

BSD                            February 3, 2002                            BSD
[ Back ]
 Similar pages
Name OS Title
mbrlen NetBSD get number of bytes consisting a multibyte character (restartable)
mblen Linux determine number of bytes in next multibyte character
mbrlen Linux determine number of bytes in next multibyte character
mblen Tru64 Determine the length in bytes of a multibyte character
mbrlen Tru64 Determine the length in bytes of a multibyte character
mbrlen FreeBSD get number of bytes in a character (restartable)
mbrtowc NetBSD converts a multibyte character to a wide character (restartable)
wcrtomb NetBSD converts a wide character to a multibyte character (restartable)
wctomb Tru64 Convert a wide character into a multibyte character
wcrtomb Tru64 Convert a wide character into a multibyte character
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service