news 2026/4/16 17:24:07

飞凌嵌入式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/16 14:02:36

从任务分配到动态协同:Open-AutoGLM调度机制全链路拆解

第一章&#xff1a;从任务分配到动态协同&#xff1a;Open-AutoGLM调度机制全链路拆解Open-AutoGLM 作为新一代面向大语言模型的自动化调度框架&#xff0c;其核心在于实现从静态任务分发到动态资源协同的无缝演进。该机制通过感知任务复杂度、模型负载状态与底层算力拓扑&…

作者头像 李华
网站建设 2026/4/16 12:27:14

端到端测试在微服务架构中的实施难点与对策

随着微服务架构的广泛应用&#xff0c;软件系统从单体式走向分布式、松耦合的服务集合。这一变革显著提升了系统的可扩展性与开发敏捷性&#xff0c;却也给软件测试&#xff0c;尤其是端到端测试带来了前所未有的复杂性。端到端测试作为验证整个业务流跨多个服务是否按预期运行…

作者头像 李华
网站建设 2026/4/16 12:23:15

LangFlow节点系统深度剖析:每个模块的作用与配置方法

LangFlow节点系统深度剖析&#xff1a;每个模块的作用与配置方法 在AI应用开发变得越来越复杂的今天&#xff0c;一个开发者可能需要同时处理提示工程、模型调用、记忆管理、外部工具集成和向量检索等多个环节。尤其是当使用LangChain构建智能体时&#xff0c;即便只是写一段看…

作者头像 李华
网站建设 2026/4/16 15:53:21

LangFlow多模态AI应用构建实例:图像+文本联合处理

LangFlow多模态AI应用构建实例&#xff1a;图像文本联合处理 在智能客服系统中&#xff0c;用户上传一张打印机故障照片并附上“屏幕显示E102”的描述。传统NLP模型只能处理文字&#xff0c;而人类专家一眼就能结合图像和文本判断问题——那么&#xff0c;我们能否让AI也具备这…

作者头像 李华
网站建设 2026/4/15 21:36:19

LangFlow本地运行教程:在个人电脑上搭建AI实验环境

LangFlow本地运行教程&#xff1a;在个人电脑上搭建AI实验环境 在自己的机器上掌控AI实验&#xff1a;为什么LangFlow值得你动手一试&#xff1f; 想象一下&#xff0c;你正尝试构建一个基于大语言模型的知识问答系统。传统方式下&#xff0c;你需要写一堆Python代码&#xff…

作者头像 李华
网站建设 2026/4/16 8:09:56

Open-AutoGLM账单识别准确率提升90%的秘密(内部技术文档流出)

第一章&#xff1a;Open-AutoGLM账单识别准确率跃升背后的真相Open-AutoGLM作为新一代开源账单识别框架&#xff0c;其准确率在最近一次模型迭代中实现了从86.4%到95.7%的显著提升。这一突破并非偶然&#xff0c;而是多维度技术优化协同作用的结果。动态注意力机制的引入 传统O…

作者头像 李华