The Single UNIX ® Specification, Version 2
Copyright © 1997 The Open Group

 NAME

mblen - get number of bytes in a character

 SYNOPSIS



#include <stdlib.h>

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

 DESCRIPTION

If s is not a null pointer, mblen() determines the number of bytes constituting the character pointed to by s. Except that the shift state of mbtowc() is not affected, it is equivalent to:

mbtowc((wchar_t *)0, s, n);

The implementation will behave as if no function defined in this document calls mblen().

The behaviour 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 VALUE

If s is a null pointer, mblen() 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() 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() function may fail if:
[EILSEQ]
Invalid character sequence is detected.

 EXAMPLES

None.

 APPLICATION USAGE

None.

 FUTURE DIRECTIONS

None.

 SEE ALSO

mbtowc(), mbstowcs(), wctomb(), wcstombs(), <stdlib.h>.

UNIX ® is a registered Trademark of The Open Group.
Copyright © 1997 The Open Group
[ Main Index | XSH | XCU | XBD | XCURSES | XNS ]