@node lstat @section @code{lstat} @findex lstat POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/lstat.html} Gnulib module: lstat Portability problems fixed by Gnulib: @itemize @item On platforms where @code{off_t} is a 32-bit type, @code{lstat} may not correctly report the size of files or block devices 2 GiB and larger. @xref{Large File Support}. @item 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. @xref{Large File Support}. @item For symlinks, when the argument ends in a slash, some platforms don't dereference the argument: Solaris 9. @item On some platforms, @code{lstat("file/",buf)} succeeds instead of failing with @code{ENOTDIR}. macOS 11.1, Solaris 9. @item On macOS 12.6, when this function yields a timestamp with a nonpositive @code{tv_sec} value, @code{tv_nsec} might be in the range @minus{}999999999..@minus{}1, representing a negative nanoseconds offset from @code{tv_sec}. Solaris 11.4 is similar, except that @code{tv_sec} might also be @minus{}1000000000. @item On Windows platforms (excluding Cygwin), symlinks are not supported, so @code{lstat} does not exist. @end itemize Portability problems not fixed by Gnulib: @itemize @item @xref{sys/stat.h}, for general portability problems with @code{struct stat}. @end itemize