| @node scanf |
| @section @code{scanf} |
| @findex scanf |
| |
| POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/scanf.html} |
| |
| Gnulib module: stdio, nonblocking |
| |
| Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}: |
| @itemize |
| @item |
| When reading from a non-blocking pipe whose buffer is empty, this function |
| fails with @code{errno} being set to @code{EINVAL} instead of @code{EAGAIN} on |
| some platforms: |
| mingw, MSVC 14. |
| @end itemize |
| |
| Portability problems not fixed by Gnulib: |
| @itemize |
| @item |
| 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 |
| @code{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. |
| @item |
| On Windows platforms (excluding Cygwin), this function does not set @code{errno} |
| upon failure. |
| @item |
| On Windows, this function doesn't support the @code{hh}, @code{ll}, @code{j}, |
| @code{t}, @code{z} size specifiers. |
| @end itemize |