utimensat
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/utimensat.html
Gnulib module: utimensat
Portability problems fixed by Gnulib:
ENOSYS on some platforms:
Linux kernel 2.6.21.
ENOSYS if passed the flag
AT_SYMLINK_NOFOLLOW on a regular file:
Linux kernel 2.6.22.
UTIME_OMIT or UTIME_NOW, some systems require
the 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.
UTIME_OMIT for the modification time, but specifying
an access time, some systems fail to update the change time:
Linux kernel 2.6.32.
tv_nsec do not lead to a failure on some
platforms:
Linux kernel 2.6.22.19 on hppa.
Portability problems not fixed by Gnulib:
ENOSYS if passed the flag
AT_SYMLINK_NOFOLLOW on a symlink.
lstat modifies the access time of
symlinks on some platforms, so utimensat with
AT_SYMLINK_NOFOLLOW can only effectively change modification time:
Cygwin.
stat modifies the access time of
directories on some platforms, so utimensat can only
effectively change directory modification time:
Cygwin 1.5.x.
The gnulib module fdutimensat provides a similar interface.