获取文件的上次访问时间?
我想获取上次访问该文件的时间,我尝试了以下代码:
import os, time
os.system("python test.py")
print os.stat('test.py').st_atime
time.sleep(60)
os.system("python test.py")
print os.stat('test.py').st_atime
但是每次输出都如下:
1358489344.72
1358489344.72
我期望延迟之前和之后的输出有所不同。我每次运行代码的输出也一样。
有什么问题吗?
-
字段st_atime通过文件访问来更改,例如,通过execve(2),mknod(2),pipe(2),utime(2)和read(2)(大于零字节)进行更改。其他例程,例如mmap(2),可能会也可能不会更新st_atime。
当您运行“ python test.py”时,它不会调用read(2),而是会调用mmap(2)。这就是为什么不增加访问时间的原因。
这是“ strace python test.py”的输出
open("test.py", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=36, ...}) = 0 mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ad626cdd000