Операції над директоріями

Як і у випадку з файлами, система зобов'язана забезпечити користувача набором операцій, необхідних для роботи з директоріями, реалізованих через системні виклики. Не дивлячись на те що директорії - це файли, логіка роботи з ними відрізняється від логіки роботи із звичайними файлами і визначається природою цих об'єктів, призначених для підтримки структури файлового архіву. Сукупність системних викликів для управління директоріями залежить від особливостей конкретної ОС. Нагадаємо, що операції над каталогами є прерогативою ОС, тобто користувач не може, наприклад, виконати запис в каталог починаючи з поточної позиції. Розглянемо як приклад деякі системні виклики, необхідні для роботи з каталогами [Таненбаум, 2002].

· Створення директорії. Знов створена директорія включає записи з іменами '.' і '..', проте вважається порожній.

· Видалення директорії. Видалена може бути тільки порожня директорія.

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

· Закриття директорії після її читання для звільнення місця у внутрішніх системних таблицях.

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

· Отримання списку файлів в каталозі.

· Перейменування. Імена директорій можна міняти, як і імена файлів.

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

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

 

Очевидно, що створення і видалення файлів припускає також виконання відповідних файлових операцій. Є ще ряд інших системних викликів, наприклад пов'язаних із захистом інформації.