15.01-02 文件时间戳
stat
可以用 stat
族系统调用来获取文件的属性。
utime
秒级时间戳更新
用 utime
族系统调用来设置文件的时间信息。修改时需要有相应的权限,以 utime
为例,其签名为:
int utime(const char *filename,
const struct utimbuf *_Nullable times);
如果 times
参数为 NULL
,则会将文件的 atime 和 mtime 修改为当前的时间。这需要进程的文件系统用户 ID 和文件匹配,且有写权限,或者是带有 CAP_FOWNER
或者 CAP_DAC_OVERRIDE
的特权级程序。
如果 times
参数非空,那么会用给定结构体的信息去更新 atime 和 mtime(ctime 信息是不能用系统调用任意修改的)。这需要进程的文件系统用户 ID 和文件匹配并有写权限,或者是带有 CAP_FOWNER
的特权级程序。