Perl для системного администрирования


Обращаем внимание на неожиданные или несанкционированные изменения - часть 2


Использовать stat() или lstat() очень просто:

@information = stat("filename");

Как сказано в главе 3 «Учетные записи пользователей», можно также применять модуль File: :Stat Тома Кристиансена, чтобы получить эту же информацию, используя объектно-ориентированный синтаксис.

Информация, возвращаемая функциями stat() и lstat(), зависит от операционной системы. stat() и lstat() происходят от системных вызовов в Unix, поэтому Perl-документация по этим функциям ссылается на значения, возвращаемые в Unix. Можно посмотреть (табл. 10.1). как эти значения соотносятся с тем, что возвращается функцией в Windows NT/2000 и MacOS. В первых двух столбцах приведены порядковый номер поля и его описание для систем Unix.

Таблица 10.1. Сравнение значений, возвращаемых функцией stat( )

Описание поля в Unix

Действительно в

NT/2000

Действительно в MacOS

0

Номер устройства файловой системы

Да (порядковый но-

мер диска)

Да (но является vRefNum)

1

Inode

Нет (всегда 0)

Да (но filelD/dirlD)

2

Режим файла (тип и права)

Да

Да (но 777 для каталогов и приложений, 666 для незаблокированных документов, 444 для заблокированных документов)

3

Количество (жестких) ссылок на файл

Да (для NTFS)

Нет (всегда 1)

4

Численный идентификатор владельца файла

Нет (всегда 0)

Нет (всегда 0)

5

Численный идентификатор группы владельца файла

Нет (всегда 0)

Нет (всегда 0)

6

Идентификатор устройства (только для специальных файлов)

Да (порядковый номер диска)

Нет (всегда null)

7

Размер файла в байтах

Да (но не включает размер каких-либо альтернативных

потоков данных)

Да (но возвращает только размер данных)

8

Время последнего доступа относительно начала эпохи

Да

Да (только эпоха начинается на 66 лет раньше, чем в Unix, то есть 1/1/1904, и значение то же, что и для поля №9) "

9

Время последней модификации относительно начала эпохи

Да

Да (только эпоха начинается 1/1/1904 и значение то же, что и для поля №8)

10

Время последнего изменения inode относительно начала эпохи

Да (но время создания файла)

Да (только эпоха начинается 1/1/1904, и это время создания файла)

11

Предпочтительный размер блока для ввода/вывода

Нет (всегда null)

Да

12

Количество занятых блоков

Нет (всегда null)

Да

<


- Начало -  - Назад -  - Вперед -



Книжный магазин