API 在 btrfs 中设置文件和目录的时间戳

API to set the timestamps on files & directories in btrfs

BTRFS files/directories 包含时间戳:

是否有一些 API 我可以在其中为文件设置所有这些时间戳?我用谷歌搜索了一下,但还没有找到任何东西。

编程语言并不重要,我希望有一些 C API,但 python 也可以,而且会更好。

从 C 开始,mtime 和 atime 可以使用 utime(2) 及其亲属来设置。 utime(2) 本身给你秒精度,utimes(2) 有微秒,而 utimensat(2) 给你纳秒。如果您有文件句柄而不是文件名,则有 futime 等变体。

Python 可以通过 os.utime 函数提供相同的功能。

传统上不可能任意修改 otime 或 ctime,除非手动编辑原始文件系统。我不知道 Linux 提供了任何内核 API 来修改它们。当然,您可以通过某种方式更改其状态来将 ctime 更新为当前时间,并且可以通过删除并重新创建文件来将 otime 更新为当前时间。原则上,您可以通过先更改系统时钟(如果您是 root)来将它们设置为不同的时间,但这可能会弄乱系统上的许多其他内容,并且可能是个坏主意。