The wctomb function converts a wide character wchar into a multibyte character and stores 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.
If mbchar is NULL, the wctomb function returns nonzero if shift states are supported, zero otherwise. If mbchar is valid, wctomb returns the number of bytes processed in mbchar, or -1 if no multibyte character could be recognized or converted. In this case, wctomb s internal conversion state is undefined.
The wctomb function will fail if: