mblen — determine number of bytes in next multibyte character
#include <stdlib.h>
| int
            mblen( | const char *s, | 
| size_t n ); | 
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.
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.
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.
This page is part of release 3.33 of the Linux man-pages project. A
      description of the project, and information about reporting
      bugs, can be found at http://man7.org/linux/man-pages/.
| Copyright (c) Bruno Haible <haibleclisp.cons.org> This is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. References consulted: GNU glibc-2 source code and manual Dinkumware C library reference http://www.dinkumware.com/ OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html ISO/IEC 9899:1999 |