Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > stat |
Автор: Bulat 15.12.2008, 17:55 |
Под виндой работаю с файлом. Пытаюсь сверить время последнего обращения/чтения файла, и время последней модификации, т.е. time - (stat($filename)[8]) и time - (stat($filename)[9]) соотв. Получаю одинаковый результат, хотя скрипт во время работы обращается к файлу и считывает данные. Т.е. значение time - (stat($filename)[8]) должно быть меньше чем time - (stat($filename)[9]), как я понимаю... Или я что-то делаю не так? |
Автор: ginnie 15.12.2008, 18:07 |
Bulat, какие даты указаны в свойствах файла в Проводнике? |
Автор: n4n0bit 16.12.2008, 09:57 |
atime == mtime - после изменения файла. atime > mtime - после последнего чтения ( если использовалась ф-ция open() ) Если скажем изменить файл ( при этом atime == mtime ) и потом сделать stat(), то они по прежнему будут равны, потому как stat() не используется ф-цию open() в результате которой изменяются эти атрибуты файла. ps: imho ;) |
Автор: Bulat 16.12.2008, 10:50 |
ginnie, все даты(создан, изменен, открыт) разные ![]() n4n0bit, не совсем, в скрипте у меня не только функция stat, но реальное обращение к файлу и считывание данных. ![]() |
Автор: ginnie 16.12.2008, 10:52 |
n4n0bit, обращаю внимание на |
Автор: n4n0bit 16.12.2008, 11:03 |
Ну если реальное обращение и чтение помимо одной -ф-ции stat() тогда atime должно быть больше ( на моей BSD машине это так ). Попробуй тогда использовать File::stat Добавлено через 5 минут и 42 секунды еще глянь POSIX::fstat |
Автор: Bulat 16.12.2008, 11:09 |
По некоторым соображениям не хотелось бы использовать модули. Вообще, это должно быть не только на BSD, по-большей части меня сейчас это интересует лишь для выяснения причины такого поведения, так как от необходимости использования ф-ии stat, можно и отказатся Добавлено через 2 минуты и 15 секунд Более того, могу дополнить тем, что такое поведение я наблюдал вчера, в то время как сейчас с утра у меня действительно получаются разные результаты ![]() |
Автор: n4n0bit 16.12.2008, 11:14 |
File::stat и POSIX это базовые модули - проста ради эксперемента можна было заюзать POSIX и причем на разных ФС FAT32/NTFS . Ну раз результаты разные тогда еще не все потеряно ![]() |
Автор: Bulat 16.12.2008, 11:19 |
Однако все равно остается один непонятный мне момент, после сегодняшнего запуска скрипта, время последнего обращения файла не сбросилось, а осталось |
Автор: n4n0bit 16.12.2008, 11:29 |
Попробуй исп модули.. |