diff options
author | Eric Blake <ebb9@byu.net> | 2009-10-20 16:47:36 -0600 |
---|---|---|
committer | Eric Blake <ebb9@byu.net> | 2009-10-20 21:21:52 -0600 |
commit | 8c871c07bc6a6bd7f4112053863833020569b272 (patch) | |
tree | 203e1334be1d12b52b68c1706f40e310423f850d /doc/glibc-functions/futimesat.texi | |
parent | 06b8c126a964a60ad353cc4f7b296060ae5c9df4 (diff) | |
download | gnulib-8c871c07bc6a6bd7f4112053863833020569b272.tar.gz |
utimensat: work around Solaris 9 bug
utimes("file/",times) mistakenly succeeds. This commit doesn't fix
utimes, but does make utimensat be careful before calling utimes.
The test is now enhanced to test trailing slashes and directories.
Meanwhile, cygwin 1.5 stat() on a directory changes atime (it does
a readdir under the hood to populate st_nlink), so only mtime of
a directory is reliable enough for testing. Cygwin 1.7 no longer
has this problem, because it no longer wastes time on st_nlink.
* lib/utimens.c (fdutimens, lutimens): Force a stat if platform
has trailing slash bugs.
* tests/test-lutimens.h (test_lutimens): Enhance test.
* tests/test-utimens.h (test_utimens): Likewise.
* doc/posix-functions/utime.texi (utime): Document the bug.
* doc/posix-functions/utimes.texi (utimes): Likewise.
* doc/posix-functions/utimensat.texi (utimensat): Likewise.
* doc/glibc-functions/futimesat.texi (futimesat): Likewise.
* doc/glibc-functions/lutimes.texi (lutimes): Mention utimens.
* doc/posix-functions/futimens.texi (futimens): Mention
limitation.
Signed-off-by: Eric Blake <ebb9@byu.net>
Diffstat (limited to 'doc/glibc-functions/futimesat.texi')
-rw-r--r-- | doc/glibc-functions/futimesat.texi | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/doc/glibc-functions/futimesat.texi b/doc/glibc-functions/futimesat.texi index dbd3d1de3e..109e4122fa 100644 --- a/doc/glibc-functions/futimesat.texi +++ b/doc/glibc-functions/futimesat.texi @@ -16,6 +16,10 @@ glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw, Interix 3.5, BeOS. @item +On some platforms, this function mis-handles trailing slash: +Solaris 9. +@item This function cannot set full timestamp resolution. Use -@code{file ? utimensat(fd,file,times,0) : futimens(fd,times)} instead. +@code{file ? utimensat(fd,file,times,0) : futimens(fd,times)}, or the +gnulib module fdutimensat, instead. @end itemize |