文件有三种时间,分别是:
- 文件数据的最后访问时间------read函数会修改
- 文件数据的最后修改时间------write函数会修改
- i 节点状态的最后更改时间----unlink函数会修改
要区分文件数据的修改时间和 i 节点状态更改时间,因为文件数据和 i 节点信息是分开存储的,有些系统调用只会影响 i 节点中的信息,而不会影响文件的数据部分,比如 unlink 函数。
使用 utime 函数可以修改一个文件的三种时间。
=====================================================
函数原型:
函数参数:
- filename:要修改的文件路径名
- times:指向包含文件时间的结构体
返回值:
- 调用成功时返回 0
- 调用失败时返回 -1
======================================================
结构体struct utimbuf的内容如下:
可以发现结构中并没有关于 i节点状态最后更改时间,这是因为在调用 utime 函数来修改文件时间的时候会自动去更新 i 节点状态最后更改时间 为当前程序运行的时间。
时间: 2024-12-11 15:30:37