代码之家  ›  专栏  ›  技术社区  ›  ParoX

PHP-linux/unix CTIME(inode change time)只在修改时设置

  •  1
  • ParoX  · 技术社区  · 15 年前

    根据: http://www.php.net/manual/en/function.filectime.php

    但是,当我访问和写入文件时,运行debianlinux(uname-r:2.6.26-2-686),比如使用PHP的

    $fh = fopen($file, 'a');
    fwrite($fh, "hello world"); 
    fclose($fh);
    

    修改时间(filemtime)和更改时间(filectime)都将得到更新。据我所知,只有当文件的首选项(权限、所有权、名称)发生更改时,才更改ctime,而不是更改内容本身。

    clearstatcache();
    
    echo "$file was last changed: " . date("F d Y H:i:s.", filectime($file)). "<br>";
    echo "$file was last modified: " . date("F d Y H:i:s.", filemtime($file)). "<br>";
    echo "$file was last accessed: " . date("F d Y H:i:s.", fileatime($file)). "<br>";
    
    2 回复  |  直到 12 年前
        1
  •  0
  •   ParoX    15 年前

    没关系,看完之后 http://www.kavoir.com/2009/04/linux-the-differences-between-file-times-atime-accessed-time-ctime-changed-time-and-mtime-modified-time.html

    它表示:“ctime change time,或文件或目录的上次更改时间,无论何时更改和更新文件,例如更改文件所有权或权限或 修改文件内容

        2
  •  0
  •   anonymous    11 年前

    当您更改文件数据时--您更改了mtime,因为mtime(修改时间)是INODE的一部分,所以当mtime更改时,文件元数据也会更改,因此ctime(更改时间)也会更改:)