Робота з файлами і каталогами

Поняття файлу та файлової системи

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







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

Інформація на носіях інформації може зберігатися тільки у вигляді файлів. Одного разу створений файл стає незалежним від процесу, користувача і системи, яка створила його.

Кожен файл характеризується деякою кількістю атрибутів, які варіюються в залежності від операційної системи. Типовий набір атрибутів включає наступні:

Ім'я. Символьне ім'я файлу є єдиним атрибутом, що зберігається в формі придатній для читання людиною.

Тип. Інформація, необхідна для управління файлами.

Розташування. Покажчик на зовнішній пристрій і на місцезнаходження файлу на цьому зовнішньому пристрої.

Розмір. Поточний розмір (в байтах, словах або блоках) і, можливо, максимально допустимий розмір.

Захист. Інформація управління доступом, керуюча рівнем доступу (читання, запис, виконання і т.д.)

Час, дата та ідентифікатор користувача. Ця інформація може характеризувати: створення, останню модифікацію, відходить останнє звернення.

Файлова система зберігає інформацію про кожен файл в структурі, званій індексним дескриптором. Кожен індексний дескриптор містить близько 40 полів, в тому числі ім'я файлу, тип, розмір, кількість жорстких посилань, інформацію про власника файлу, про права доступу до нього, дату / час останньої модифікації файлу і дату / час останнього доступу до нього. Саме з індексним дескриптором працює ОС при зверненні до файлу.

В операційній системі (ОС) Unix підтримуються кілька типів файлів:

Звичайні файли. Це просто послідовність байтів; на структуру таких файлів не накладається ніяких обмежень - це можуть бути текстові документи, виконувані програми, мультимедійні дані.

Посилання. Діляться на 2 типу:

Спеціальні файли пристроїв. Файли пристроїв дозволяють Unix-програмами взаємодіяти з апаратними засобами і периферійними пристроями системи. За всю роботу по управлінню конкретним пристроєм відповідає спеціальна програма, яка називається драйвером пристрою. Драйвери пристроїв утворюють стандартний комунікаційний інтерфейс, який виглядає для користувача як звичайний файл. Коли ядро ​​ОС отримує запит до файлу пристрою, воно просто передає цей запит відповідному драйверу, тобто файли пристроїв можна уявити як шлюзи, через які драйверам передаються запити. В UNIX розрізняють символьні та блочні файли пристроїв. Символьні файли пристроїв використовуються для небуферізірованного обміну даними з пристроєм, в противагу цьому блокові файли дозволяють проводити обмін даними у вигляді пакетів фіксованої довжини - блоків. Доступ до деяких пристроїв може здійснюватися як через символьні, так і через блокові спеціальні файли.







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

Іменовані канали. Подібно сокета, іменовані канали забезпечують взаємодію двох процесів, які виконуються на одному комп'ютері.

Структура файлової сістемиUnix

Файлова система ОС Unix має ієрархічну (деревоподібну) структуру, основою якої є кореневий каталог, який має ім'я /. Кореневої каталог файлової сістемиUnixвсегда один. Розташування файлів у файловому дереві не визначається їх розташуванням на тому чи іншому фізичному або логічному диску. Файлові структури, що знаходяться на різних дисках, в тому числі на дисках інших комп'ютерів, за допомогою спеціальної команди (mount) монтуються на файлове деревоUnix, стаючи частиною єдиного файлового дерева. Всі операції над файлами з точки зору користувача виконуються однаковим чином, незалежно від їх фізичного розташування.

використовуються для групування символів в набори. Набори можуть задаватися:

явним перерахуванням символів, без вказівки роздільників між ними, наприклад [atz56, =] - символ відповідає або однією з трьох буквa, tіz, або однією з цифр 5 і 6, або одному з спецсимволов кома і знак рівності

шляхом вказівки діапазону, наприклад [a-z] - символ відповідає малої букві від а доz

комбінацією цих способів, наприклад [0-9ij] - символ відповідає або цифрі, або однією з буквiіліj

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

відповідає файлам з іменами, що починаються на літеру f

відповідає файлам з іменами, що містять букву f

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

відповідає файлам з іменами, в яких третьою буквою є a, b, c чи d

відповідає файлам з іменами, які не починаються з великої літери і закінчуються на цифру 2, 4, 6 або 8

Якщо в ім'я файлу повинен входити будь-якої спецсимвол, то при вказівці шаблону цей спецсимвол необхідно випереджати за допомогою зворотного слеша ( «\»), або екранувати, наприклад:

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

Латинські букви верхнього регістру







Схожі статті