NAME
wctomb
, wctomb_l
— convert a wide-character code
to a character
LIBRARY
library “libc”
SYNOPSIS
#include
<stdlib.h>
int
wctomb
(char
*mbchar, wchar_t
wchar);
#include
<xlocale.h>
int
wctomb_l
(char
*mbchar, wchar_t
wchar, locale_t
locale);
DESCRIPTION
Thewctomb
()
and wctomb_l
() functions convert a wide character
wchar into a multibyte character and store the result in
mbchar. The object pointed to by
mbchar must be large enough to accommodate the multibyte
character, which may be up to MB_LEN_MAX
bytes.
A call with a null mbchar pointer returns nonzero if the current locale requires shift states, zero otherwise; if shift states are required, the shift state is reset to the initial state.
The
wctomb_l
()
function takes an explicit locale argument, whereas
the wctomb
() function uses the current global or
per-thread locale.
RETURN VALUES
If mbchar is NULL
,
the wctomb
() and wctomb_l
()
functions return nonzero if shift states are supported, zero otherwise. If
mbchar is valid, wctomb
() and
wctomb_l
() return the number of bytes processed in
mbchar, or -1 if no multibyte character could be
recognized or converted. In this case, wctomb
()'s
and wctomb_l
()'s internal conversion states are
undefined.
ERRORS
The wctomb
() and
wctomb_l
() functions will fail if:
- [
EILSEQ
] - An invalid multibyte sequence was detected.
- [
EINVAL
] - The internal conversion state is invalid.
SEE ALSO
STANDARDS
The wctomb
() function conforms to
ISO/IEC 9899:1999
(“ISO C99”).