fstat
=====

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

Gnulib module: fstat

Portability problems fixed by Gnulib:

  * This function crashes when invoked with invalid arguments on some platforms: MSVC 14.

  * On platforms where off_t is a 32-bit type, fstat may not correctly report the size of files or block devices 2 GiB and larger.. See Large File Support.

  * On Linux/x86 and Linux/x86_64, applications compiled in 32-bit mode cannot access files that happen to have a 64-bit inode number.  This can occur with file systems such as XFS (typically on large disks) and NFS. See Large File Support.

  * On macOS 12.6, when this function yields a timestamp with a nonpositive tv_sec value, tv_nsec might be in the range -999999999..-1, representing a negative nanoseconds offset from tv_sec.  Solaris 11.4 is similar, except that tv_sec might also be -1000000000.

  * The st_atime, st_ctime, st_mtime fields are affected by the current time zone and by the DST flag of the current time zone on some platforms: mingw, MSVC 14 (when the environment variable TZ is set).

Portability problems not fixed by Gnulib:

  * See sys/stat.h, for general portability problems with struct stat.

  * On Cygwin, fstat applied to the file descriptors 0 and 1, returns different st_ino values, even if standard input and standard output are not redirected and refer to the same terminal.