• 正文
  • 相关推荐
申请入驻 产业图谱

飞凌嵌入式ElfBoard-文件的时间属性

2025/12/23
318
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

在前面的struct stat结构体中的参数基本介绍完毕,还有最后一个属性,是文件的时间属性,时间属性都包括如下内容:

结构体字段 说明
struct timespec st_atim; 文件最后访问时间
struct timespec st_mtim; 文件内容最后修改时间
struct timespec st_ctim; 文件状态最后状态改变时间

文件最后访问时间:顾名思义是指最后一次读取文件内容的时间,如使用read函数读取文件的内容之后,此项时间就会发生变化。

文件内容最后修改时间:指文件内容发生改变,如使用write函数向文件中写入数据,变会发生变化。

文件状态最后被修改时间:状态更改时指文件的inode节点最后一次被修改的时间。

那什么情况下inode节点话发生变化呢?下面就简单介绍下。

1.文件内容被修改:通过函数对文件读写时,会更新inode节点的修改时间和状态更改时间。如函数fwirte()或者wirte()。

2.文件属性修改:修改文件的权限、所有者或者文件名,就会更新inode节点的状态更改时间。如前面提到的chmod()、 chown()、 rename()函数。

3.创建或删除文件:创建新的文件或者删除文件也会影响inode节点。如open()、creat()、unlink()、remove()。

那么如何修改文件的时间属性呢?下面就来介绍4个修改时间属性的函数:

修改时间属性的函数有utime()、utimes()、futimens()、utimensat()等函数,下表中为函数的基本区别:

函数 功能 时间精度
utime() 设置文件的访问时间和修改时间 秒级别
utimes() 设置文件的访问时间和修改时间 微秒级别
utimensat() 设置文件的访问时间和修改时间 纳秒级别
futimens() 设置已打开文件的访问时间和修改时间 纳秒级别

上面介绍了修改时间属性函数的基本区别,需要注意的是,不是所有的用户都可以修改文件的时间属性,只有超级用户和有效用户ID和文件用户ID相匹配的进程才会拥有修改权限。

飞凌嵌入式

飞凌嵌入式

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。收起

查看更多

相关推荐