1#include <stdlib.h>2#include <string.h>3#include <wchar.h>45#undef mbtowc67int8mbtowc(wchar_t *restrict pwc, const char *restrict s, size_t n)9{10 int ret;11 static mbstate_t st;1213 ret = mbrtowc(pwc, s, n, &st);14 if (ret == -2) {15 memset(&st, 0, sizeof(st));16 ret = -1;17 }1819 return ret;20}