10.624 mbrtowc
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9699919799/functions/mbrtowc.html
Gnulib module: mbrtowc
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, HP-UX 11.00, mingw.
- In the C or POSIX locales, this function can return
(size_t) -1
and set errno
to EILSEQ
:
glibc 2.35.
- This function returns 0 instead of
(size_t) -2
when the input
is empty:
glibc 2.19,
MSVC 14, Android 11.
- This function returns
(size_t) -1
instead of (size_t) -2
when the input is empty:
AIX 7.2.
- This function does not put the state into non-initial state when parsing an
incomplete multibyte character on some platforms:
AIX 7.2.
- This function stores a wide character when parsing an incomplete multibyte
character on some platforms:
MSVC 14.
- This function returns the total number of bytes that make up the multibyte
character, not the number of bytes that were needed to complete the multibyte
character, on some platforms:
HP-UX 11.11, Solaris 11 2010-11, mingw, MSVC 14.
- This function may not return 0 when parsing the NUL character on some platforms:
Solaris 9.
Portability problems not fixed by Gnulib:
- In UTF-8 locales, this function may return wide characters up to 0x7FFFFFFF
(that is, beyond 0x0010FFFF) on some platforms:
glibc 2.34.
- On Windows and 32-bit AIX platforms,
wchar_t
is a 16-bit type and
therefore cannot accommodate all Unicode characters.
However, the ISO C11 function mbrtoc32
, provided by Gnulib module
mbrtoc32
, operates on 32-bit wide characters and therefore does not have
this limitation.