Mercurial > hg > octave-kai > gnulib-hg
view doc/posix-functions/futimens.texi @ 13794:586d7f932642
futimens: work around Solaris 11 bug
Revert "test-futimens: avoid unwarranted test failure on Solaris 5.11"
This reverts commit 0afab138f4aedb7eaab70957c164aa0e5eb01fce.
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Detect the bug.
* tests/test-futimens.h (test_futimens): Enhance, rather than
weaken test.
* doc/posix-functions/futimens.texi (futimens): Document the bug.
Signed-off-by: Eric Blake <eblake@redhat.com>
author | Eric Blake <eblake@redhat.com> |
---|---|
date | Mon, 11 Oct 2010 13:54:45 -0600 |
parents | bb0ceefd22dc |
children | 837d918f9552 |
line wrap: on
line source
@node futimens @section @code{futimens} @findex futimens POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/futimens.html} Gnulib module: futimens Portability problems fixed by Gnulib: @itemize @item This function is missing on some platforms: 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 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS. However, the replacement function may end up truncating timestamps to less resolution than supported by the file system. @item This function returns a bogus value instead of failing with @code{ENOSYS} on some platforms: Linux kernel 2.6.21. @item When using @code{UTIME_OMIT} or @code{UTIME_NOW}, some systems require the @code{tv_sec} argument to be 0, and don't necessarily handle all file permissions in the manner required by POSIX: Linux kernel 2.6.25. @item When using @code{UTIME_OMIT} for the modification time, but specifying an access time, some systems fail to update the change time: Linux kernel 2.6.32. @itme Passing @code{AT_FDCWD} as the fd argument does not properly fail with @code{EBADF} on some systems: glibc 2.11, Solaris 11. @end itemize Portability problems not fixed by Gnulib: @itemize @item Some platforms lack the ability to change the timestamps of a file descriptor, so the replacement can fail with @code{ENOSYS}; the gnulib module @samp{utimens} provides a more reliable interface @code{fdutimens}. @item The mere act of using @code{stat} modifies the access time of directories on some platforms, so @code{utimensat} can only effectively change directory modification time: Cygwin 1.5.x. @end itemize