Ztyx Asked: 2012-09-28 04:06:00 +0800 CST2012-09-28 04:06:00 +0800 CST 2012-09-28 04:06:00 +0800 CST atime/mtime 是否在 fopen、fread/fwrite 和/或 fclose 上更新? 772 我只是好奇; atime 是否更新于fread,fopen和/或fclose? 时间呢?是否更新于fopen,fwrite和/或fclose? linux 2 个回答 Voted Best Answer Fran 2012-09-28T05:26:25+08:002012-09-28T05:26:25+08:00 如果你strace是你的进程,你会看到fopen相应的系统stat。举PHP个例子。 PHP 示例 首先确保文件系统正在更新这些值, mount -o remount,atime,diratime / 然后做一个小脚本。 <?php echo "fopen: " .date("H:i:s \n"); $fh = fopen('test.tmp', 'r'); sleep(2); echo "fread: ".date("H:i:s \n"); fread($fh,1024); sleep(2); echo "fwrite: ".date("H:i:s \n"); fwrite($fh,'test'); sleep(2); echo "fclose: ".date("H:i:s \n"); fclose($fh); echo shell_exec('stat test.tmp'); 然后制作测试用例并执行 echo test > test.tmp php test.php 结果... [/]$ php test.php fopen: 14:31:34 fread: 14:31:36 fwrite: 14:31:38 fclose: 14:31:40 File: `test.tmp' Size: 5 Blocks: 8 IO Block: 4096 regular file Device: 805h/2053d Inode: 98213 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2012-09-27 14:31:36.000000000 +0100 Modify: 2012-09-27 14:28:28.000000000 +0100 Change: 2012-09-27 14:28:28.000000000 +0100 所以 ... fread应该与相关atime fwrite应与 相关联mtime。 参考 mtime: time of last modification (eg. ls -l) ctime: time of last status change (eg. ls -lc) atime: time of last access (eg. ls -lu) 这作为函数的一部分有很好的记录stat,ref。http://en.wikipedia.org/wiki/Stat_%28system_call%29 user228032 2014-06-27T00:41:59+08:002014-06-27T00:41:59+08:00 您必须打开文件'w'才能写入: $fh = fopen('test.tmp', 'w');
如果你
strace
是你的进程,你会看到fopen
相应的系统stat
。举PHP
个例子。PHP 示例
首先确保文件系统正在更新这些值,
然后做一个小脚本。
然后制作测试用例并执行
结果...
所以 ...
fread
应该与相关atime
fwrite
应与 相关联mtime
。参考
这作为函数的一部分有很好的记录
stat
,ref。http://en.wikipedia.org/wiki/Stat_%28system_call%29您必须打开文件
'w'
才能写入: