mbrlen(3C)mbrlen(3C)NAMEmbrlen() - get number of bytes in a character (restartable)
SYNOPSISDESCRIPTION
If s is not a null pointer, determines the number of bytes constituting
the character pointed to by s. It is equivalent to:
If ps is a null pointer, the function uses its own internal object,
which is initialized at program startup to the initial conversion
state. Otherwise, the object pointed to by ps is used to completely
describe the current conversion state of the associated character
sequence.
APPLICATION USAGE
The prototype of this function is available to applications if they
are:
a. conformant.
b. Compiled with macro with a value >=500.
c. Compiled with macro with a value >= 200112.
EXTERNAL INFLUENCES
Environment Variables
The behavior of this function is affected by the category of the cur‐
rent locale.
RETURN VALUE
The function returns the first of the following that applies:
0 If the next n or fewer bytes complete the charac‐
ter that corresponds to the null wide-character.
positive If the next n or fewer bytes complete a valid
character; the value returned is the number of
bytes that complete the character.
(size_t)-2 If the next n bytes contribute to an incomplete
but potentially valid character, and all n bytes
have been processed. When n has at least the
value of the macro, this case can only occur if s
points at a sequence of redundant shift sequences
(for implementations with state-dependent encod‐
ings).
(size_t)-1 If an encoding error occurs, in which case the
next n or fewer bytes do not contribute to a com‐
plete and valid character. In this case, is
stored in and the conversion state is undefined.
ERRORS
The function may fail if:
Invalid character sequence is detected.
ps points to an object that contains an invalid con‐
version state.
AUTHOR
was developed by HP and Mitsubishi Electric Corporation.
SEE ALSOmbrtowc(3C), mbsinit(3C), glossary(9).
mbrlen(3C)