---
title: "path_filestat_set_times()"
description: "Update time metadata on a file or directory."
url: "https://wasix.org/docs/api-reference/wasi/path_filestat_set_times/"
markdown: "https://wasix.org/docs/api-reference/wasi/path_filestat_set_times.md"
---

# `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

```ebnf
  ;;; 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 the `path` is relative to.
- `flags`: Flags to control how the `path` is understood.
- `path`: A wasm pointer to a null-terminated string containing the file path.
- `path_len`: The length of the `path` 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.

---

[Documentation index](https://wasix.org/llms.txt) · [HTML version](https://wasix.org/docs/api-reference/wasi/path_filestat_set_times/)
