news 2026/4/23 19:12:35

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
飞凌嵌入式ElfBoard-文件的时间属性之utime

设置文件的访问时间和修改时间(秒级别)。

1.头文件

#include <sys/types.h>

#include <utime.h>

2.函数原型

int utime(const char *filename, const struct utimbuf *times);

3.参数

filename:指向文件路径名的指针,指定要修改时间的文件。如果文件路径无效或者文件不存在,utime() 会返回错误。

times:指向 struct utimbuf 结构体的指针,该结构体包含两个字段,用于指定新的访问时间和修改时间。

这里介绍一下struct utimbuf结构体:

struct utimbuf {

time_t actime; /* 最后访问时间access time */

time_t modtime; /* 最后修改时间modification time */

};

4.返回值

成功返回 0 ,失败返回-1,并且会返回错误原因。

5.示例:(使用utime修改文件访问时间)

#include <stdio.h>

#include <stdlib.h>

#include <sys/stat.h>

#include <utime.h>

#include <errno.h>

#include <string.h>

#include <time.h>

void update_file_time(const char *filename);

int main(){

const char *filename = "file_utime.txt";

int res = 0;

struct stat statbuf;

printf("File name: %s\n", filename);

if (stat(filename, &statbuf) == -1) {

if (errno == ENOENT) {

fprintf(stderr,"File does not exist: %s\n", filename);

} else {

perror("stat");

}

return EXIT_FAILURE;

}

update_file_time(filename);

return EXIT_SUCCESS;

}

void update_file_time(const char *filename) {

struct utimbuf new_times;

new_times.actime = time(NULL);

new_times.modtime = time(NULL);

if (utime(filename, &new_times) == -1) {

perror("utime");

exit(EXIT_FAILURE);

}

printf("File time updated successfully.\n");

}

先使用stat命令查看一下file_utime.txt时间戳:

$ stat file_utime.txt

File: file_utime.txt

Size: 0 Blocks: 0 IO Block: 4096 regular empty file

Device: 803h/2051d Inode: 5242954 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 1000/ elf) Gid: ( 1000/ elf)

Access: 2024-09-10 20:46:17.894084787 +0800

Modify: 2024-09-10 14:03:28.000000000 +0800

Change: 2024-09-10 14:03:28.393749310 +0800

Birth: 2024-09-10 14:00:57.882938108 +0800

运行utime_test命令,修改时间属性:

File name: file_utime.txt

File time updated successfully.

修改时间属性后再使用stat命令查看时间戳的变化:

$ stat file_utime.txt

File: file_utime.txt

Size: 0 Blocks: 0 IO Block: 4096 regular empty file

Device: 803h/2051d Inode: 5242954 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 1000/ elf) Gid: ( 1000/ forlinx)

Access: 2024-11-06 21:11:21.000000000 +0800

Modify: 2024-11-06 21:11:21.000000000 +0800

Change: 2024-11-06 21:11:21.526051882 +0800

Birth: 2024-09-10 14:00:57.882938108 +0800

执行完utime_test命令后,可以看到文件的访问时间(Access time)和文件修改时间(Modification time)发生了变化,改成系统当前时间了。我们并没有修改文件状态更改时间(Change time),然而它也跟着修改了,这是一种系统机制,在ctime中,记录着文件最后一次修改的时间,对于文件的任何修改包括时间属性的更新,都会更新ctime的时间。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 8:18:45

Open-AutoGLM实战指南:3步搭建属于你的智能门票核销机器人

第一章&#xff1a;Open-AutoGLM智能核销机器人概述Open-AutoGLM智能核销机器人是一款基于大语言模型与自动化流程技术深度融合的企业级应用工具&#xff0c;专为财务、供应链及共享服务中心设计&#xff0c;旨在解决传统人工核销效率低、错误率高、规则复杂等痛点。该系统通过…

作者头像 李华
网站建设 2026/4/23 8:21:18

信息安全毕设易上手题目集合

文章目录&#x1f6a9; 1 前言1.1 选题注意事项1.1.1 难度怎么把控&#xff1f;1.1.2 题目名称怎么取&#xff1f;1.2 选题推荐1.2.1 起因1.2.2 核心- 如何避坑(重中之重)1.2.3 怎么办呢&#xff1f;&#x1f6a9;2 选题概览&#x1f6a9; 3 项目概览题目1 : 大数据电商用户行为…

作者头像 李华
网站建设 2026/4/23 9:58:07

LangFlow企业级安全配置建议:权限控制与敏感信息保护

LangFlow企业级安全配置建议&#xff1a;权限控制与敏感信息保护 在AI应用开发日益低代码化、可视化的今天&#xff0c;LangFlow 正成为越来越多企业构建智能工作流的首选工具。通过拖拽节点即可完成复杂的 LangChain 流程编排&#xff0c;极大地降低了AI技术的使用门槛。然而&…

作者头像 李华
网站建设 2026/4/23 9:58:07

Open-AutoGLM设备互联难题全解析,一文搞定多端数据一致性

第一章&#xff1a;Open-AutoGLM跨设备任务同步概述Open-AutoGLM 是一个面向多设备协同环境的自动化任务调度框架&#xff0c;旨在实现异构设备间的无缝任务同步与状态一致性维护。该系统通过统一的任务描述语言和轻量级通信协议&#xff0c;支持在移动终端、边缘节点与云端服务…

作者头像 李华
网站建设 2026/4/23 14:50:08

Open-AutoGLM多智能体协同设计内幕(仅限资深架构师知晓的核心方法论)

第一章&#xff1a;Open-AutoGLM多智能体协同调度在现代大规模语言模型应用中&#xff0c;多智能体系统的协同调度成为提升任务执行效率与准确性的关键。Open-AutoGLM 作为一种开源的自动推理框架&#xff0c;支持多个智能体之间的动态协作与任务分发&#xff0c;能够在复杂业务…

作者头像 李华
网站建设 2026/4/23 9:54:44

LangFlow镜像SOC2准备工具:帮助企业通过审计认证

LangFlow镜像&#xff1a;构建可审计AI工作流的SOC2合规利器 在企业加速拥抱生成式AI的今天&#xff0c;一个现实矛盾日益凸显&#xff1a;业务部门渴望快速上线智能客服、知识问答等LLM应用&#xff0c;而安全部门却对黑盒模型、分散脚本和权限失控忧心忡忡。尤其当企业准备冲…

作者头像 李华