The access and modification times of the file named by
path
or referenced by
fd
are changed as specified by the argument
times.
If
times
is
NULL,
the access and modification times are set to the current time.
The caller must be the owner of the file, have permission to
write the file, or be the superuser.
If
times
is non-null,
it is assumed to point to an array of two timeval structures.
The access time is set to the value of the first element, and the
modification time is set to the value of the second element.
The caller must be the owner of the file or be the superuser.
In either case, the inode-change-time of the file is set to the current
time.
RETURN VALUES
Upon successful completion, a value of 0 is returned.
Otherwise, a value of \-1 is returned and
errno
is set to indicate the error.
ERRORS
utimes();
will fail if:
[EACCES]
Search permission is denied for a component of the path prefix;
or the
times
argument is
NULL
and the effective user ID of the process does not
match the owner of the file, and is not the superuser, and write
access is denied.
[EFAULT]
File
or
times
points outside the process's allocated address space.
[EIO]
An I/O error occurred while reading or writing the affected inode.
[ELOOP]
Too many symbolic links were encountered in translating the pathname.
[ENAMETOOLONG]
A component of a pathname exceeded
{NAME_MAX}
characters, or an entire path name exceeded
{PATH_MAX}
characters.
[ENOENT]
The named file does not exist.
[ENOTDIR]
A component of the path prefix is not a directory.
[EPERM]
The
times
argument is not
NULL
and the calling process's effective user ID
does not match the owner of the file and is not the superuser.
[EROFS]
The file system containing the file is mounted read-only.
futimes();
will fail if:
[EBADF]
fd
does not refer to a valid descriptor.
[EACCES]
The
times
argument is
NULL
and the effective user ID of the process does not
match the owner of the file, and is not the superuser, and write
access is denied.
[EFAULT]
times
points outside the process's allocated address space.
[EIO]
An I/O error occurred while reading or writing the affected inode.
[EPERM]
The
times
argument is not
NULL
and the calling process's effective user ID
does not match the owner of the file and is not the superuser.
[EROFS]
The file system containing the file is mounted read-only.