view doc/posix-functions/fscanf.texi @ 17085:80904f782122

doc: document sticky-EOF issue * doc/posix-functions/fgetc.texi (fgetc): * doc/posix-functions/fgets.texi (fgets): * doc/posix-functions/fread.texi (fread): * doc/posix-functions/fscanf.texi (fscanf): * doc/posix-functions/getc.texi (getc): * doc/posix-functions/getchar.texi (getchar): * doc/posix-functions/scanf.texi (scanf): Mention that glibc and default Solaris do not conform to C99 and POSIX-2001 or later, with respect to how getchar etc. behave when feof reports nonzero.
author Paul Eggert <eggert@cs.ucla.edu>
date Sun, 16 Sep 2012 10:37:16 -0700
parents 6355dc4626b5
children 1c4d62fce4a1
line wrap: on
line source

@node fscanf
@section @code{fscanf}
@findex fscanf

POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/fscanf.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 9.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
C99 and POSIX-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