Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.

WCTOMB(3)                  Library Functions Manual                  WCTOMB(3)

     wctomb - converts a wide character to a multibyte character

     Standard C Library (libc, -lc)

     #include <stdlib.h>

     wctomb(char * s, 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
     current locale.

     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, wctomb() 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 9.99                    February 3, 2002                    NetBSD 9.99