Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PR_СП_лабы_11.doc
Скачиваний:
7
Добавлен:
22.04.2019
Размер:
755.71 Кб
Скачать

1 Основні поняття

Файли являють собою області пам'яті на зовнішньому носії (як правило магнітному диску), призначені для зберігання даних.

Файли відрізняються від звичайних масивів тим, що

  • вони можуть змінювати свій розмір;

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

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

Файли мають імена і організовані в ієрархічну деревоподібну структуру з каталогів і простих файлів.

У середовищі UNIX розрізняються різні типи файлів. Така відмінність пов'язана зі способами управління структурою файлів та контро лем за переданням у нього даних.

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

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

Спеціальні файли пристроїв - це файли, що забезпечують передачу даних відповідних пристроїв. Типів таких пристроїв у UNIX чотири: познаковой передачі, передачі по блоках, raw blocks (не буферизованих) і терміналів введення / ви вода. За спеціальним дозволом користувач може отримати доступ на за пись або читання в спеціальні файли за допомогою інструкцій оболонки або че рез системні виклики з програми.

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

Сокети - це файли, що забезпечують повнодуплексному межпроцессное взаємодію.

Символічна посилання (symbolic link) - це спеціальний файл, який містить шлях до іншого файлу.

В ОС UNIX підтримується три способи вказівки імен файлів:

Коротке ім'я. Ім'я, яке не містить спеціальних метасимволів коса риса (/), є коротким ім'ям файлу. За короткому імені можна послатися на файли поточного каталогу.

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

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

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

В ОС UNIX немає теоретичних обмежень на кількість вкладених тек. Тим не менш, у кожній реалізації є практичні обмеження на максимальну довжину імені файлу, що зазначається у командах (як і на довжину командного рядка в цілому).

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

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