int
utimes(
const char *path
, const struct timeval times[2]
)
int
lutimes(
const char *path
, const struct timeval times[2]
)
int
futimes(
int fd
, const struct timeval times[2]
)
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 super-user.
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.
For file systems that support file birth (creation) times (such as
UFS2), the birth time will be set to the value of the second element
if the second element is older than the currently set birth time.
To set both a birth time and a modification time, two calls are
required; the first to set the birth time and the second to set
the (presumably newer) modification time.
Ideally a new system call will be added that allows the setting of
all three times at once.
The caller must be the owner of the file or be the super-user.
In either case, the inode-change-time of the file is set to the current time.
lutimes()
is like
utimes(
)
except in the case where the named file is a symbolic link,
in which case
lutimes(
)
changes the access and modification times of the link,
while
utimes(
)
changes the times of the file the link references.
)
and
lutimes(
)
will fail if:
EACCES
]
times
argument is
NULL
and the effective user ID of the process does not
match the owner of the file, and is not the super-user, and write
access is denied.
EFAULT
]
path
or
times
points outside the process's allocated address space.
EIO
]
ELOOP
]
ENAMETOOLONG
]
{NAME_MAX}
characters, or an entire path name exceeded
{PATH_MAX}
characters.
ENOENT
]
ENOTDIR
]
EPERM
]
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 super-user.
EROFS
]
futimes()
will fail if:
EBADF
]
fd
does not refer to a valid descriptor.
EACCES
]
times
argument is
NULL
and the effective user ID of the process does not
match the owner of the file, and is not the super-user, and write
access is denied.
EFAULT
]
times
points outside the process's allocated address space.
EIO
]
EPERM
]
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 super-user.
EROFS
]
)
function call appeared in
4.2BSD.
The
futimes(
)
function call appeared in
NetBSD1.2.
The
lutimes(
)
function call appeared in
NetBSD1.3.
Birthtime setting support was added in
NetBSD5.0.