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
>=
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 non-zero if the encoding has
non-trivial 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 2.74 of the Linux man-pages
project. A
description of the project, and information about reporting
bugs, can be found at
http://www.kernel.org/doc/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 |