专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

UNIX文件st_mtime改变的同时st_atime可以不变吗?解决方法

发布时间:2011-06-28 14:47:48 文章来源:www.iduyao.cn 采编人员:星星草
UNIX文件st_mtime改变的同时st_atime可以不变吗?
看到APUE中总结有些函数会改变文件的st_mtime,却不会改变st_atime,查了一些资料说st_atime只有在最后一次文件被读取的情况下才会被修改。
  但是我的直观感受是如果修改了文件的数据,导致st_mtime改变,修改的同时肯定也访问了文件啊(修改的前提不就是需要访问吗),那最后访问时间st_atime不也应该随着改变吗?

  第二个问题就是对于任意一个文件,如果函数通过路径名访问,比如访问/usr/include/stdio.h,最终在/usr/include目录中找到该文件,这个是对该目录的一种访问吗?目录的st_atime需要修改吗?

------解决方案--------------------
1.那么你考虑一个文件会有多个进程打开的情况么?

2.我觉得不需要修改。如果你只是单纯的查找的话
------解决方案--------------------
试验了一下
1、查看/usr/include当前的访问时间,表示为t1
ls -lud /usr/include

2、ls其中的一个文件后,再查看访问时间,表示为t2
ls /usr/include/stdio.h
ls -lud /usr/include

3、ls目录本身,再查看访问时间,表示为t3
ls /usr/include
ls -lud /usr/include

发现:t1和t2是相同的,而与t3不同
------解决方案--------------------
给楼主讲个简单记忆法吧, 只看不改变atime, 修改同时变ctime和mtime。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: