WCSRTOMBS(3) Linux Programmer's Manual WCSRTOMBS(3)
wcsrtombs - convert a wide-character string to a multibyte string
size_t wcsrtombs(char *dest, const wchar_t **src,
size_t len, mbstate_t *ps);
If dest is not NULL, the wcsrtombs() function converts the wide-character string *src to a multibyte string starting at dest. At most len
bytes are written to dest. The shift state *ps is updated. The conversion is effectively performed by repeatedly calling wcrtomb(dest,
*src, ps), as long as this call succeeds, and then incrementing dest by the number of bytes written and *src by one. The conversion can
stop for three reasons:
1. A wide character has been encountered that can not be represented as a multibyte sequence (according to the current locale). In this
case, *src is left pointing to the invalid wide character, (size_t) -1 is returned, and errno is set to EILSEQ.
2. The length limit forces a stop. In this case, *src is left pointing to the next wide character to be converted, and the number of bytes
written to dest is returned.
3. The wide-character string has been completely converted, including the terminating null wide character (L'