text: mbrtowc - convert a character to a wide-character code (restartable)
  #include <wchar.h> size_t mbrtowc(wchar_t *pwc, const char *s, size_t n, mbstate_t  behaviour of this function is affected by the LC_CTYPE category of the current locale.
  The mbrtowc() function returns the first of the following that applies:
  - 0
  - If the next n or fewer bytes complete the character that corresponds to the null wide-character (which is the value stored).
  - positive
  - If the next n or fewer bytes complete a valid character (which is the value stored); the value returned is the number of bytes that complete the character.
  - (size_t)-2
  - If the next n bytes contribute to an incomplete but potentially valid character, and all n bytes have been processed (no value is stored). (no value is stored). In this case, EILSEQ is stored in errno and the conversion state is undefined.
  The mbrtowc() function may fail if:
  - [EINVAL]
  - ps points to an object that contains an invalid conversion state.
  - [EILSEQ]
  - Invalid character sequence is detected.
  None.
  None.
  None.
  mbsinit(), <wchar.h>.
  Derived from the ISO/IEC 9899:1990/Amendment 1:1995 (E).