WCTOMB(3) Library Functions Manual WCTOMB(3)
wctomb -- converts a wide character to a multibyte character
Standard C Library (libc, -lc)
wctomb(char * s, const wchar_t wchar);
The wctomb() converts the wide character wchar to the corresponding
multibyte character, and stores it in the array pointed to by s.
wctomb() may store at most MB_CUR_MAX bytes in the array.
In state-dependent encoding, wctomb() may store the special sequence to
change the conversion state before an actual multibyte character into the
array pointed to by s. If wchar is a nul wide character (`\0'), this
function sets its own internal state to an initial conversion state.
Calling any other functions in Standard C Library (libc, -lc) never
changes the internal state of wctomb(), except changing the LC_CTYPE
category of the current locale by calling setlocale(3). Such
setlocale(3) calls cause the internal state of this function to be
The behaviour of wctomb() is affected by the LC_CTYPE category of the
There is one special case:
s == NULL wctomb() initializes its own internal state to an initial
state, and determines whether the current encoding is
state-dependent. This function returns 0 if the encoding
is state-independent, otherwise non-zero. In this case,
wchar is completely ignored.
Normally, wctomb() returns:
positive Number of bytes for the valid multibyte character pointed
to by s. There are no cases that the value returned is
greater than n or the value of the MB_CUR_MAX macro.
-1 wchar is an invalid wide character.
If s is equal to NULL, mbtowc() returns:
0 The current encoding is state-independent.
non-zero The current encoding is state-dependent.
No errors are defined.
The wctomb() function conforms to ANSI X3.159-1989 (``ANSI C89'').
NetBSD 6.1.5 February 3, 2002 NetBSD 6.1.5