PHP - linux / unix CTIME (время изменения inode) устанавливается, когда он только изменяется - PullRequest
1 голос
/ 26 июля 2010

Согласно: http://www.php.net/manual/en/function.filectime.php

"В большинстве файловых систем Unix файл считается измененным при изменении его данных inode, то есть когда разрешения, владелец, группа или другие метаданные из inodeобновляется. "

Однако при запуске Debian linux (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 ]

0 голосов
/ 18 сентября 2013

Когда вы изменяете данные файла - вы меняете mtime, так как mtime (время модификации) является ЧАСТЬЮ INODE, поэтому, когда mtime изменяется, метаданные файла также изменяются, следовательно, ctime (время изменения) также изменяется:)

0 голосов
/ 26 июля 2010

Не важно, после прочтения http://www.kavoir.com/2009/04/linux-the-differences-between-file-times-atime-accessed-time-ctime-changed-time-and-mtime-modified-time.html

В нем говорится: «ctime - время изменения или время последнего изменения файла или каталога, всякий раз, когда вы изменяете и обновляете файл, например, меняете владельца файла или права доступа или изменяете содержимое файла , ctime файла обновляется до текущего времени "

...