news 2026/4/21 20:11:50

飞凌嵌入式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/20 1:45:41

LangFlow实时预览功能揭秘:即时调试LangChain应用不再是难题

LangFlow实时预览功能揭秘&#xff1a;即时调试LangChain应用不再是难题 在构建智能对话系统、自动化文本处理流程或复杂AI代理时&#xff0c;开发者常常面临一个共同的困境&#xff1a;修改一行提示词后&#xff0c;需要完整运行整个链路才能看到结果。这种“写代码 → 运行 →…

作者头像 李华
网站建设 2026/4/20 6:53:59

零延迟核销系统是如何炼成的?——基于Open-AutoGLM的高并发处理架构详解

第一章&#xff1a;零延迟核销系统的时代背景与行业挑战在数字化经济高速发展的今天&#xff0c;企业对交易处理的实时性要求达到了前所未有的高度。传统核销系统依赖批量处理和定时调度&#xff0c;往往存在分钟级甚至小时级的延迟&#xff0c;已无法满足高频交易、实时风控和…

作者头像 李华
网站建设 2026/4/20 13:44:32

为什么你的Open-AutoGLM在边缘设备上延迟高?一文揪出根本原因

第一章&#xff1a;Open-AutoGLM 边缘计算部署优化 在边缘设备上高效部署大型语言模型&#xff08;LLM&#xff09;是当前AI系统优化的重要方向。Open-AutoGLM 作为支持自动代码生成与轻量化推理的开源框架&#xff0c;其在资源受限环境下的性能表现尤为关键。通过模型剪枝、量…

作者头像 李华
网站建设 2026/4/20 20:31:41

3天掌握Open-AutoGLM旅游辅助系统(从入门到精通的完整路径)

第一章&#xff1a;Open-AutoGLM旅游辅助系统概述Open-AutoGLM 是一个基于开源大语言模型的智能旅游辅助系统&#xff0c;专为提升旅行规划效率与个性化体验而设计。该系统融合自然语言理解、行程推荐算法与多模态数据处理能力&#xff0c;支持用户通过对话方式完成目的地推荐、…

作者头像 李华
网站建设 2026/4/17 3:59:46

为什么你的任务无法实时同步?Open-AutoGLM底层架构深度剖析

第一章&#xff1a;为什么你的任务无法实时同步&#xff1f;Open-AutoGLM底层架构深度剖析在构建基于大语言模型的自动化系统时&#xff0c;开发者常遇到任务状态不同步、响应延迟甚至执行丢失的问题。这些问题的根源往往深藏于系统的底层架构设计之中。Open-AutoGLM 作为一款面…

作者头像 李华
网站建设 2026/4/20 4:36:03

揭秘Open-AutoGLM协议栈:为何它能统一百万级IoT设备?

第一章&#xff1a;揭秘Open-AutoGLM协议栈的核心理念Open-AutoGLM 是一种面向自动化大语言模型集成的开源协议栈&#xff0c;旨在实现异构AI系统间的无缝通信与任务协同。其核心理念围绕“语义对齐、行为自治、动态适配”三大支柱构建&#xff0c;使不同模型能够在统一框架下理…

作者头像 李华