The wcrtomb function stores a multibyte sequence representing the wide character wc, including any necessary shift sequences, to the character array s, storing a maximum of MB_CUR_MAX bytes.
If s is NULL, wcrtomb behaves as if s pointed to an internal buffer and wc was a null wide character (L\0).
The mbstate_t argument, ps, is used to keep track of the shift state. If it is NULL, wcrtomb uses an internal, static
.Vt mbstate_t object, which is initialized to the initial conversion state at program startup.
The wcrtomb functions returns the length (in bytes) of the multibyte sequence needed to represent wc, or (Vt size_t-1) if wc is not a valid wide character code.
The wcrtomb function will fail if: