scanf
=====

POSIX specification:
 https://pubs.opengroup.org/onlinepubs/9699919799/functions/scanf.html

LSB specification:
 https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-scanf.html

Gnulib module: stdio, nonblocking

Portability problems fixed by Gnulib module stdio, together with module nonblocking:

  * When reading from a non-blocking pipe whose buffer is empty, this function fails with errno being set to EINVAL instead of EAGAIN on some platforms: mingw, MSVC 14.

Portability problems not fixed by Gnulib:

  * C99 and POSIX.1-2001 and later require end-of-file to be sticky, that is, they require this function to act as if it reads end-of-file if feof would return nonzero.  However, on some systems this function attempts to read from the underlying file descriptor even if the stream's end-of-file indicator is set.  These systems include glibc and default Solaris.

  * On Windows platforms (excluding Cygwin), this function does not set errno upon failure.

  * On Windows, this function doesn't support the hh, ll, j, t, z size specifiers.