Получение и установка атрибутов времени
Проблема
Требуется получить или изменить время последней модификации (записи или изменения)
или обращения (чтения) для файла.
Решение
Функция
stat
получает атрибуты времени, а функция
utime
устанавливает их значения.
Обе функции являются встроенными в Perl:
($READTIME, $WRITETIME) = (stat($filename))[8,9];
utime($NEWREADTIME, $NEWWRITETIME, $filename);
Комментарий
В традиционной файловой системе UNIX с каждым индексным узлом
связываются три атрибута времени. Любой пользователь может установить значения atime и mtime
функцией utime, если он имеет право записи в каталог, содержащий файл. Следующий пример
демонстрирует вызов функции utime:
$SECONDS_PER_DAY = 60 * 60 * 24;
($atime, $mtime) = (stat ($file)) [8, 9];
$atime -= 7 *$SECONDS_PER_DAY;
$mtime -= 7 *$SECONDS_PER_DAY;
utime($atime, $mtime, $file)
or die "couldn't backdate $file by a week w/ utime: $!";
Функция utime должна вызываться для обоих атрибутов, atime и mtime. Если вы хотите задать
лишь одно из этих значений, необходимо предварительно получить другое с помощью функции stat:
$mtime = (stat $file)[9];
utime(time, $mtime, $file);
Применение модуля File::stat упрощает этот фрагмент:
use File::stat;
utime(time, stat($file)->mtime, $file);
См. такжеОписание функций
stat и
utime
Proverte kod v komentariyah gde pro list tam oshibki detskie
Оставить комментарий:
|
|