开发日记-20190830 关键词 读书笔记《Unix环境高级编程(第二版)》DAY 6

156 篇文章 0 订阅
82 篇文章 2 订阅

Preface

今天的天气其实真的很棒,所以还是希望自己能够出去玩玩.


Content

函数futimens,utimensat和utimes

一个文件的访问和修改时间可以用以下的几个函数更改。futimens和utimensat函数可以指定纳秒精度的时间戳。用到的数据结构是与stat函数族相同的timespec结构

#include<sys/stat.h>
int futimens(int fd,const struct timespec times[2]);
int utimensat(int fd,const char* path,const struct timespec,times[2],int flag);

两个函数返回值:若成功,返回0;若出错,返回-1;

这两个函数的times数组参数的第一个元素包含访问时间,第二个元素包含修改时间,这两个时间值是日历时间,这里是自特定时间1970年1月1日 00:00:00以来所经历过的秒数。不足秒的部分用纳秒表示。

时间戳可以按下列4种方式进行指定。
(1)如果times参数是一个空指针,则访问时间和修改时间两者都设置为当前时间
(2)如果times参数指向包含(这里原文翻译其实真的很烂,这翻译绝对存在误导性)两个time-spec结构的数组,任一数组元素的tv_nsec字段的值为UTIME_NOW,相应的时间戳就设置为当前时间,忽略相应的tv_sec字段。
(3)如果times参数指向两个time-spec结构的数组,任一数组元素的tv_nsec字段的值为UTIME_OMIT,相应的时间戳保持不变,忽略响应的tv_sec字段
(4)如果time参数指向两个time-spec结构的数组,且tv_nsec字段的值为既不是UTIME_NOW也不是UTIME_OMIT,在这种情况下,相应的时间戳设置为相应的tv_sec和tv_nsec字段的值

执行这些函数所要求的优先权取决于times参数的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值