utime 函数可以用来更改文件的最近访问时间最近修改时间,即 atime 和 mtime。如果你不知道这两个时间是什么含义,请参考《stat 结构体中的三个时间》 。

1 utime 函数原型

/*
struct utimbuf {time_t actime;       // access timetime_t modtime;      // modification time
};
*/
int utime(const char *filename, const struct utimbuf *times);

该函数接收一个文件名和 utimbuf 结构体作为输入,返回 0 表示成功,-1 表示失败。


2 示例

这个例子将一个文件的 atime 和 mtime 减去一天后,再使用 utime 重设。

2.1 演示

  • 创建测试文件
$ echo hello > test.txt
$ ls -ls test.txt
-rw-rw-r-- 1 allen allen 6 12月  1 17:25 test.txt
  • 使用 myutime 更改时间(myutime 的代码见 2.2 节)
$ ./myutime test.txt
  • 结果
最近修改时间 Thu Dec  1 17:25:17 2016最近访问时间 Thu Dec  1 17:25:17 2016执行 utime 后(时间减去一天)
最近修改时间 Wed Nov 30 17:25:17 2016最近访问时间 Wed Nov 30 17:25:17 2016

2.2 完整代码

下面这段代码的知识比较综合,用的都是前面的知识,如果看不懂,建议阅读前面的文章。

代码中有使用新的函数 ctime,该函数是把 time_t 类型的时间转换成人类可读的字符串的,使用起来方便快捷。它的原型是这样的:

char *ctime(const time_t *timep);

  • 代码
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <utime.h>
#include <stdio.h>int main(int argc, char* argv[]) {struct stat st; stat(argv[1], &st);printf("最近修改时间 %s\n",ctime(&st.st_mtime)); printf("最近访问时间 %s\n",ctime(&st.st_atime)); struct utimbuf utb = {st.st_atime - 24*3600, st.st_mtime - 24*3600};utime(argv[1], &utb);stat(argv[1], &st);printf("执行 utime 后(时间减去一天)\n");printf("最近修改时间 %s\n",ctime(&st.st_mtime)); printf("最近访问时间 %s\n",ctime(&st.st_atime)); return 0;
}
  • 编译
$ gcc myutime.c -o myutime

3 总结

  • 掌握 utime 的使用方法
  • 熟练使用 stat 函数
  • 掌握时间转字符串函数 ctime

18-utime 函数相关推荐

  1. 4.19 utime函数-文件时间修改

    除了文件处理函数隐性地处理文件时间属性外,很多时候应用程序需要显式地处理时间属性,例如更改文件的时间属性,用文件的时间属性作为一个事务处理的依据,有时候还要将时间变成让人看懂的字符打印出来. 一.ut ...

  2. UNIX环境编程学习笔记(11)——文件I/O之文件时间以及 utime 函数

    lienhua34 2014-09-16 1 文件的时间 每个文件都有三个时间字段,如表 1 所示. 表 1: 文件的三个时间字段 说明 字段 st_atime 文件数据的最后访问时间 st_mtim ...

  3. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.18. 数组函数和操作符...

    9.18. 数组函数和操作符 表 9.48显示了可以用于数组类型的操作符. 表 9.48. 数组操作符 操作符 描述 例子 结果 = 等于 ARRAY[1.1,2.1,3.1]::int[] = AR ...

  4. linux 文件按时间 函数,[Linux文件属性]使用utime函数操作文件的时间参数

    //这是一个使用utime函数对文件的时间参数进行修改的实例 //文件首先使用stat函数获得文件当前的时间参数,然后使用 //Open函数对文件进行修改,再用utime函数对文件的时间信息 //进行 ...

  5. linux读取文件修改时间函数,Linux服务器编程之utime()函数修改文件存取时间

    Linux服务器编程之utime()函数修改文件存取时间 C语言utime()函数:修改文件的存取时间和更改时间 头文件: #include #include 定义函数: int utime(cons ...

  6. 十四、文件和目录——文件时间和utime函数

    14.1 文件时间 存在于 stat 结构体中 14.2 文件时间函数 14.2.1 介绍 utime(修改文件的存取时间和更改时间) 相关函数 utimes,stat 1 #include < ...

  7. Linux服务器编程之:utime()函数

    1.依赖的头文件 #include<sys/types.h> #include<utime.h> 2函数声明 int utime(const char *filename, c ...

  8. 课时18:函数:灵活即强大

    目录: 一.形参和实参 二.函数文档 三.关键字参数 四.默认参数 五.收集参数 六.课时18课后习题及答案 ****************** 一.形参和实参 ****************** ...

  9. 中谷教育Python15~18笔记——函数

    函数: 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字. 可以通过函数名在程序的不同地方多次执行(这同城叫做函数调用),却不需要再所有地方都重复编写这些语句. 自定 ...

  10. 18.高级函数(闭包与装饰器)

    一.闭包函数 1.闭包基础 前面我们已经学习了函数嵌套,我们再来看一个关于函数嵌套的例子. 外层函数outer_1定义了1个空列表lst,然后调用内层函数inner_1,每次调用时往内层函数传入参数1 ...

最新文章

  1. HTTPS网络加密双向验证-使用AFNetworking封装
  2. “高引用”《牛顿传》重版再出,今晚八点,来直播间“遇见牛顿”!
  3. TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器
  4. 自然语言处理系列篇——关键词智能提取
  5. java 简单的加法 递归 从A加到B
  6. win系统mysql找回密码
  7. 程序员如何避免半途而废?
  8. 设置Kafka集群的方法
  9. Oracle 日期时间函数大全
  10. 计算机四级网络工程师(计算机网络多选)- 知识点
  11. ITIL学习笔记——ITIL入门小知识
  12. java中object是什么_Java中的Object是什么?
  13. 基于秃鹰搜索算法的无线传感器网络三维覆盖优化
  14. “Win7内部版本7600此Windows副本不是正版”解决方法
  15. SciPy教程 - 稀疏矩阵库scipy.sparse
  16. C语言数据结构——环形队列
  17. 设计一个学校食堂管理系统
  18. Rman配置DataGuard using Backup-based duplication with a target connection with filesystem
  19. 内存条上的数字代表的意义
  20. 国际惯例,个人流程分享

热门文章

  1. SpringBoot心得
  2. 被跟卖了怎么投诉?亚马逊邮箱官方邮件联系方式汇总
  3. 医疗大数据模型-眼底图像的眼疾智能识别
  4. TGO 鲲鹏会台北分会成立,继续推动两岸科技交融
  5. python数学知识点_python基础知识整理
  6. 满满的干货分享!!!广电网络的那些事~
  7. 业务分析师在敏捷项目中的作用
  8. PMP每日⑤题(五)答案
  9. 什么是工业绝缘监测仪?工业绝缘监测仪应用范围-安科瑞黄安南
  10. 计算机性能指标ppt,2计算机的特点与性能指标.ppt