Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lecture.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
740.35 Кб
Скачать

5.2.4. Операції з каталогами

Системні виклики, керуючі каталогами, значно відрізняються від системи до системи (на відміну від системних викликів для роботи з файлами). Щоб дати уявлення про те, що вони собою представляють і як виконуються, наведемо наступний приклад (взятий з UNIX).

create

Створення каталогу. Щойно створений каталог порожній і не містить

інших записів, крім точки (.) і двох точок (..), які розміщені в каталог

операційною системою автоматично або в деяких випадках програмою

mkdir.

delete

Видалення каталогу. Може бути вилучений тільки порожній каталог. Записи точка (.)

і дві точки (..) файлами не є і вилучені бути не можуть.

opendir

Відкриття каталогу. Після цієї операції каталог може бути прочитаний. Наприклад, для роздруківки всіх файлів каталогу програма, що створює список, відкриває каталог, щоб прочитати імена всіх містяться в ньому файлів. Перш ніж каталог може бути прочитаний, його слід відкрити, подібно відкриття та читання файлу.

closedir

Закриття каталогу. Коли каталог прочитаний, його слід закрити, щоб звільнити місце у внутрішній таблиці системи.

readdir

Читання наступному записі відкритого каталогу. У колишні часи можна було читати каталоги за допомогою звичайного системного виклику read, але такий підхід був небезпечний, так як вимагав від програміста вміння працювати з внутрішньою структурою каталогів. Тому був створений окремий системний виклик readdir, що завжди повертає один запис каталогу стандартного формату незалежно від поточної структури каталогів.

rename

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

link

Зв'язування файлів. Зв'язування являє собою техніку, що дозволяє файлу з'являтися відразу в декількох каталогах. Цей системний виклик отримує в якості вхідних параметрів ім'я файлу та ім'я шляху і створює зв'язок між ними. Таким чином, один і той же файл може з'являтися відразу в декількох каталогах. Подібна зв'язок, що збільшує на одиницю лічильник в індексному вузлі файлу (для обліку кількості каталогів з посиланнями на цей

файл), іноді називається жорсткої зв'язком.

unlink

Видалення зв'язку з файлом. Якщо файл присутній тільки в одному каталозі, даний системний виклик видалить його з файлової системи. Якщо існують декілька зв'язків з цим файлом, буде видалено лише зазначений зв'язок, а решта залишаться. Цей системний виклик застосовується для видалення файлу в операційній системі UNIX.

У наведеному списку перераховані найбільш важливі системні виклики, але

існує також безліч інших, наприклад для захисту інформації.

5.3. Реалізація файлової системи

Тепер перейдемо від розгляду файлової системи з точки зору користувачем

користувача до розгляду з точки зору розробника. Користувачів цікавить, як

називаються файли, які операції з ними допустимі, як виглядає дерево

каталогів і тому подібні питання. Проектувальники файлових систем

цікавляться тим, як зберігаються файли і каталоги, як здійснюється управління

дисковим простором і як домогтися надійної та ефективної роботи

файлової системи. У наступних розділах ми познайомимося з цим поглядом на

файлову систему.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]