Index of Section 3 Manual Pages
| Interix / SUA | mblen.3 | Interix / SUA |
mblen(3) mblen(3)
mblen()
NAME
mblen() - get number of bytes in a character
SYNOPSIS
#include
int mblen (const char *s, size_t n)
DESCRIPTION
If s is not a null pointer, the mblen(3) function determines the umber of
bytes constituting the character pointed to by s, Except that the shift
state of mbtowc(3) is not affected, it is equivalent to:
mbtowc((whcar_t *)0, s, n)
The behavior of this function is affected by the LC_CTYPE category of the
current locale. For a state-dependent encoding, this function is 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
cause the internal state of the function to be altered as necessary. A
call with s as a null pointer causes 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 do not produce separate wide-character codes, but are grouped with
an adjacent character. Changing the LC_CTYPE category causes the shift
state of this function to be indeterminate.
RETURN VALUES
If s is a null pointer, mblen(3) returns 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(3) either returns 0 (if s
points to the null byte), or returns the number of bytes that constitute
the character (if the next n or fewer bytes form a valid character), or
returns -1 (if they do not form a valid character) and may set errno to
indicate the error. In no case will the value returned be greater than n
or the value of the MB_CUR_MAX macro.
ERRORS
The mblen(3) function may fail if:
[EILSEQ]
Invalid byte sequence is detected.
SEE ALSO
mbtowc(3)
mbstowcs(3)
wctomb(3)
wcstombs(3)
USAGE NOTES
The mblen function is thread safe.
The mblen function is not async-signal safe.