linux下文件时间的问题.

[zxg@c649 4chapter]$ ls -lu file_size.c
-rw-r--r-- 1 zxg root 621 2010-12-29 09:46 file_size.c          文件的st_atime
[zxg@c649 4chapter]$ ls -lc file_size.c                              
-rw-r--r-- 1 zxg root 621 2010-12-29 09:46 file_size.c          文件的st_ctime
[zxg@c649 4chapter]$ cat file_size.c > /dev/null                cat之后文件的st_atime应该改变
[zxg@c649 4chapter]$ ls -lu file_size.c
-rw-r--r-- 1 zxg root 621 2011-01-06 09:35 file_size.c          cat后的文件的st_atime
[zxg@c649 4chapter]$ ls -lc file_size.c
-rw-r--r-- 1 zxg root 621 2010-12-29 09:46 file_size.c          cat后的文件的st_ctime

cat后文件的st_ctime的时间没有改变.
那么我猜测stat函数获取st_atime时不是从i-node中获取的.    如果st_atime是存在i-node中, 那么cat后st_atime变化, 则i-node发生了改变, 相应的st_ctime也应该变化.   但上面的示例显示并非如此.    因此stat函数获得的st_atime, st_mtime, st_ctime是从哪里来的?

作者: zengxg14   发布时间: 2011-01-06

st_atime 文件最近一次被存取或被执行的时间,一般只有在用mknod、utime、read、write与tructate时改变。
st_mtime 文件最后一次被修改的时间,一般只有在用mknod、utime和write时才会改变
st_ctime i-node最近一次被更改的时间,此参数会在文件所有者、组、权限被更改时更新先前所描述的st_mode

作者: kuok2000   发布时间: 2011-01-11