mbchar(3C) (C Programming Language Utilities) mbchar(3C)
NAME
mbchar: mbtowc, mblen, wctomb - multibyte character handling
SYNOPSIS
#include <stdlib.h>
int mbtowc (wchart *pwc, const char *s, sizet n);
int mblen (const char *s, sizet n);
int wctomb (char *s, wchart wchar);
DESCRIPTION
Multibyte characters are used to represent characters in an extended
character set. This is needed for locales where 8 bits are not
enough to represent all the characters in the character set.
The multibyte character handling functions provide the means of
translating multibyte characters into wide characters and back again.
Wide characters have type wchart (defined in <stdlib.h>), which is
an integral type whose range of values can represent distinct codes
for all members of the largest extended character set specified among
the supported locales.
A maximum of 3 extended character sets are supported for each locale.
The number of bytes in an extended character set is defined by the
LCCTYPE category of the locale [see setlocale(3C)]. However, the
maximum number of bytes in any multi-byte character will never be
greater than MBLENMAX. which is defined in <stdlib.h>. The
maximum number of bytes in a character in an extended character set
in the current locale is given by the macro, MBCURMAX, also defined
in <stdlib.h>.
mbtowc determines the number of bytes that comprise the multibyte
character pointed to by s. Also, if pwc is not a NULL pointer, mbtowc
converts the multibyte character to a wide character and places the
result in the object pointed to by pwc. (The value of the wide
character corresponding to the NULL character is zero.) At most n
characters will be examined, starting at the character pointed to by
s.
If s is a NULL pointer, mbtowc simply returns 0. If s is not a NULL
pointer, then, if s points to the NULL character, mbtowc returns 0;
if the next n or fewer bytes form a valid multibyte character, mbtowc
returns the number of bytes that comprise the converted multibyte
character; otherwise, s does not point to a valid multibyte character
and mbtowc returns -1.
mblen determines the number of bytes comprising the multibyte
character pointed to by s. It is equivalent to
8/91 Page 1
mbchar(3C) (C Programming Language Utilities) mbchar(3C)
mbtowc ((wchart *)0, s, n);
wctomb determines the number of bytes needed to represent the
multibyte character corresponding to the code whose value is wchar,
and, if s is not a NULL pointer, stores the multibyte character
representation in the array pointed to by s. At most MBCURMAX
characters are stored.
Page 2 8/91
mbchar(3C) (C Programming Language Utilities) mbchar(3C)
If s is a NULL pointer, wctomb simply returns 0. If s is not a NULL
pointer, wctomb returns -1 if the value of wchar does not correspond
to a valid multibyte character; otherwise it returns the number of
bytes that comprise the multibyte character corresponding to the
value of wchar.
SEE ALSO
mbstring(3C), setlocale(3C), environ(5).
chrtbl(1M) in the System Administrator's Reference Manual.
8/91 Page 3