X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=doc%2Fposix-functions%2Futimensat.texi;h=cb1698ec4ab96f39ab8a6ff205f6964eed665416;hb=14b6d70139486b63e66257aad1abe2a9615f4d96;hp=5788af1c60b2dbab50a4525216096a453b332dd6;hpb=17f87c3231d8808b8e873126abf15e6e8b9a0e67;p=gnulib.git diff --git a/doc/posix-functions/utimensat.texi b/doc/posix-functions/utimensat.texi index 5788af1c6..cb1698ec4 100644 --- a/doc/posix-functions/utimensat.texi +++ b/doc/posix-functions/utimensat.texi @@ -2,17 +2,56 @@ @section @code{utimensat} @findex utimensat -POSIX specification: @url{http://www.opengroup.org/onlinepubs/9699919799/functions/utimensat.html} +POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/utimensat.html} -Gnulib module: --- +Gnulib module: utimensat 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. Furthermore, the +replacement function is not safe to be used in libraries and is not +multithread-safe. +@item +This function returns a bogus value instead of failing with +@code{ENOSYS} on some platforms: +Linux kernel 2.6.21. +@item +This function fails with @code{ENOSYS} if passed the flag +@code{AT_SYMLINK_NOFOLLOW} on a regular file: +Linux kernel 2.6.22. +@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. @end itemize Portability problems not 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, mingw, Interix 3.5, BeOS. +On some platforms, timestamps of symbolic links cannot be modified, so +the replacement fails with @code{ENOSYS} if passed the flag +@code{AT_SYMLINK_NOFOLLOW} on a symlink. +@item +The mere act of using @code{lstat} modifies the access time of +symlinks on some platforms, so @code{utimensat} with +@code{AT_SYMLINK_NOFOLLOW} can only effectively change modification time: +Cygwin. +@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 + +The gnulib module fdutimensat provides a similar interface.