path_filestat_set_times()
Update time metadata on a file or directory.
Description
The path_filestat_set_times()
function allows updating the time metadata (last accessed time and last modified time) for a file or directory specified by a path relative to the given directory.
On POSIX systems, a similar functionality is provided by the utimensat()
function. It updates the timestamps (access time and modification time) of a file or directory with nanosecond precision.
Syntax
;;; Note: This is similar to `utimensat` in POSIX.
;;; Adjust the timestamps of a file or directory.
(@interface func (export "path_filestat_set_times")
(param $fd $fd)
;;; Flags determining the method of how the path is resolved.
(param $flags $lookupflags)
;;; The path of the file or directory to operate on.
(param $path string)
;;; The desired values of the data access timestamp.
(param $atim $timestamp)
;;; The desired values of the data modification timestamp.
(param $mtim $timestamp)
;;; A bitmask indicating which timestamps to adjust.
(param $fst_flags $fstflags)
(result $error (expected (error $errno)))
)
Parameters
ctx
: A mutable reference to the function environment.fd
: The file descriptor representing the directory that thepath
is relative to.flags
: Flags to control how thepath
is understood.path
: A wasm pointer to a null-terminated string containing the file path.path_len
: The length of thepath
string.st_atim
: The timestamp that the last accessed time attribute is set to.st_mtim
: The timestamp that the last modified time attribute is set to.fst_flags
: A bitmask controlling which attributes are set.
Return Value
The function returns an Errno
value indicating the success or failure of the operation. If the operation is successful, it returns Errno::Success
. Otherwise, it returns an appropriate Errno
value.
Logging
This function has been instrumented with debug-level logging. It will log the following information:
%fd
: The file descriptor representing the directory.path
: The path string.%st_atim
: The last accessed time attribute value.%st_mtim
: The last modified time attribute value.
Note
The path_filestat_set_times()
function allows updating the time metadata (last accessed time and last modified time) for a file or directory specified by a path relative to the given directory. It checks if the specified directory has the necessary rights and updates the timestamps accordingly. On POSIX systems, a similar functionality is provided by the utimensat()
function.