7164965d665094fe90f87b5617593265c3de06fb
[gnulib.git] / doc / posix-functions / utimensat.texi
1 @node utimensat
2 @section @code{utimensat}
3 @findex utimensat
4
5 POSIX specification: @url{http://www.opengroup.org/onlinepubs/9699919799/functions/utimensat.html}
6
7 Gnulib module: utimensat
8
9 Portability problems fixed by Gnulib:
10 @itemize
11 @item
12 This function is missing on some platforms:
13 glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
14 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
15 Interix 3.5, BeOS.
16 @item
17 This function returns a bogus value instead of failing with
18 @code{ENOSYS} on some platforms:
19 Linux kernel 2.6.21.
20 @item
21 When using @code{UTIME_OMIT} or @code{UTIME_NOW}, some systems require
22 the @code{tv_sec} argument to be 0, and don't necessarily handle all
23 file permissions in the manner required by POSIX:
24 Linux kernel 2.6.25.
25 @end itemize
26
27 Portability problems not fixed by Gnulib:
28 @itemize
29 @item
30 On some platforms, timestamps of symbolic links cannot be modified, so
31 the replacement fails with @code{ENOSYS} if passed the flag
32 @code{AT_SYMLINK_NOFOLLOW} on a symlink.
33 @item
34 The mere act of using @code{lstat} modifies the access time of
35 symlinks on some platforms, so @code{utimensat} with
36 @code{AT_SYMLINK_NOFOLLOW} can only effectively change modification time:
37 Cygwin.
38 @end itemize
39
40 The gnulib module utimens provides a similar interface.