| ## Microsoft Windows/MINGW_HAS_SECURE_API * `fopen_s`, `freopen_s` deviate in the API: restrict is missing. * `strtok_s`, `wcstok_s`,`vsnprintf_s` miss the dmax argument. * `vsnprintf_s` adds a maxarg argument. * `vswprintf` adds a maxarg argument on w32. (with `__STRICT_ANSI__`
undefined) * no `strnlen` on mingw32. * no `errno_t` return type for `qsort_s`, only `void`. * reversed argument order for `localtime_s` and `gmtime_s`. * older mingw versions have `wchar.h` with only 2 functions:
`wcscmp`, `wcslen` * no `RSIZE_MAX` * `memmove_s` does not clear dest with ERANGE when `count > dmax` and EINVAL when
src is a NULL pointer. * `vsprintf_s`, `sprintf_s` return `-1` on all errors, not just encoding errors.
(Wrong standard) * With `wcsrtombs` (used by `wcsrtomb_s`) the `retval` result
includes the terminating zero, i.e. the result is `+1` from the
spec. `getenv_s` returns in len the size of the env buffer, not the len, as described in the
standard (https://en.cppreference.com/w/c/program/getenv). The Microsoft size is len + 1.
Their usage example is also wrong: https://learn.microsoft.com/en-us/cpp/c-runtime-library/refe... |