【发布时间】:2021-09-20 08:51:15
【问题描述】:
statx() 系统调用已添加到 Linux 内核,现在可以从支持的文件系统上的statx.stx_btime 结构字段获取文件的创建(出生)时间。但我在utimensat() 中找不到类似系统调用的任何支持。
是否可以在 C/C++ 中更改文件的创建时间戳以及如何更改?
【问题讨论】:
-
为什么要更改文件的创建时间戳?那应该解决什么问题?此外,这样做真的有意义吗?就这样篡改历史?
-
@Someprogrammerdude 我需要使用与备份应用程序中的原始文件相同的时间戳(btime、atime 和 mtime)复制文件。
-
所以你想克隆文件?如果您使用该术语(克隆)进行搜索,那么您会获得更好的点击率吗?
-
@Someprogrammerdude 在我的情况下,克隆文件没用。备份文件以不同于源文件系统的方式存储在我的备份工具数据库中。当我将文件从数据库恢复到目标文件系统时,我需要创建新文件,然后更改其时间戳。这就是我需要直接更改文件时间戳的原因。
-
作为一名法医调查员,我想说你真的不应该这样做。从备份的角度来看,忽略出生时间戳应该没有缺点。
标签: c++ c linux filesystems