Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект Лекций ПСРВ.doc
Скачиваний:
81
Добавлен:
12.02.2016
Размер:
2.73 Mб
Скачать

2.4.2. Жесткие ссылки

Для одних и тех же физических данных файла можно создать несколько элементов каталога. Такие до­полнительные элементы каталога (т. е. имена) называют жест­кими ссылками (или "жесткими связями"). При создании жесткой ссылки, во-первы:х, информация о физическом размещении данных выносится в файл /.inodes, во-вторых, атрибут файла - счетчик ссылок увеличивается на единицу. При удалении одной из жестких ссылок реально будет удален только соответствую­щий элемент каталога, а счетчик ссылок на inode-запись будет уменьшен на единицу. Как только счетчик достигнет значения Ноль, и inode-запись, и физические данные файла будут унич­тожены. Справедливости ради заметим, что для уничтожения Файла есть еще одно обязательное условие — статус файла дол­жен иметь значение "закрыт". inode-запись сохраняется, пока существует файл.

Примечание

Нельзя создавать жесткие связи для каталогов, кроме уже существующих —"." и "..".

2.4.3. Символические ссылки

Еще один полезный тип файлов — символические ссылки (их называют «мягкими» ссылками). Это по сути дела текстовый файл содержащий имя другого файла или каталога к которому перенаправляются все запросы ввода/вывода.

У символической ссылки есть важное достоинство – она может указывать на файл или каталог, находящийся на, другом физическом носителе (например, в другом разделе диска или на другом узле сети).

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

< limits .h >.

Файл устройства обеспечивает доступ к физическому устройству. Для взаимодействия с устройствами кроме драйверов им ставятся в соответствие файлы устройств. Программы обмениваются данными с устройствами через файлы устройств. Используя стандартные библиотечные функции ввода-вывода, программы могут открывать их, читать из них данные и осуществлять запись в них точно так же, как если бы это были обычные файлы. Устройства разделяют на два типа:

  • Символьные устройства читают и записывают данные в виде последовательного потока байтов. Сюда входят последовательные и параллельные порты, накопители на магнитной ленте, терминалы и звуковые карты. Байт-ориентированные специальные файлы — это файлы, аналогичные блочным устройствам, с той разницей, что символьные устрой­ства обеспечивают интерфейс к аппаратуре, осуществляющей посимвольный ввод/вывод. Байт-ориентированные специальные файлы создаются драйверами при запуске. Например, драйвер Ethernet-карты создает файл /dev/eno.

  • Блочные (блок-ориентированные) устройства читают и записывают данные блоками фиксированного размера. Примером блочного устройства является жесткий диск.

Блок-ориентированные специальные файлы (очень часто их назы­вают "блочными устройствами") — файлы, предназначенные для того, чтобы скрыть от приложений физические характеристики аппаратуры. Слово "блочный" говорит о том, что обмен данны­ми осуществляется блоками по несколько байт (нгапример, при работе с жестким диском обычный размер блока— 512 байт). В QNX блок-ориентированные специальные файлы создаются не на диске, а в оперативной памяти. Они создаются при старте соответствующих драйверов. Например, драйвер создает блок-ориентированные файлы: /dev/hdo — для доступа к первому жесткому диску, /dev/hdl — для доступа ко второму жесткому диску и т. д.

Примечание.

Благодаря своей универсальности байт- и блок-ориентированные специальные файлы могут использоваться приложениями не только для об­мена данными с драйверами устройств, но и для взаимодействия с другими программами. В этих случаях приложения, создающие специальные файлы, будут являться как бы программными уст­ройствами.