276____________________________Часть II. Программирование на C++

архивации определит, что атрибут Archive сброшен только у этих файлов и только для этих файлов создаст новые резервные копии.

Атрибут Read-Only. Для файла с установленным атрибутом Read-Only будут запрещены любые попытки записи в этот файл или сохранения под его именем другого файла. Этот атрибут используется для защиты файлов от случайного уничтожения.

Если у вас есть командный файл, необходимый для компиляции и содержащий все переменные окружения, его можно пометить атрибутом Read-only, чтобы не допустить внесения в него каких-либо изменений. Кроме того, при попытке внести любые изменения в такой файл система напомнит вам, что ваши действия неправомерны. Таким образом, вы не уничтожите собственными руками необходимую вам информацию.

Атрибут System. Этот атрибут используется операционной системой для предотвращения физического перемещения файла. Например, программы дефрагментации диска перераспределяют кластеры файлов таким образом, чтобы они располагались последовательно. Это ускоряет чтение и запись, поскольку избавляет операционную систему от необходимости поисков на диске отдельных фрагментов файлов.

Некоторые файлы операционных систем, будь то DOS, OS/2 или Windows NT, находятся во вполне определенных местах диска. Такие файлы помечаются как системные и тем самым защищаются от перемещения. Атрибут System используется обычно вместе с атрибутами Hidden или Read-Only, чтобы пользователи не могли ни видеть эти файлы, ни вносить в них изменения.

Атрибут Hidden. Атрибут Hidden используется для того, чтобы файл не был виден при обычном просмотре каталога. Этот эффект можно наблюдать при просмотре командой DIR корневого каталога диска, на котором установлена MS-DOS. Введя

DIR /A-D

мы увидим список всех файлов, невзирая на их атрибуты. Запомним число показанных файлов (каталоги в этом списке отсутствуют). Теперь введем эту же команду со следующими ключами:

DIR /AD

Будет выведен список всех каталогов. Снова запомним число элементов в списке. Сложим эти два числа и сравним результат с тем, что получится после ввода следующей команды:

DIR

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