- •6.1 Тема «Поняття файлу і файлової системи»
- •6.1.1 Поняття файла
- •6.1.2. Поняття файлової системи
- •6.1.3. Типи файлів
- •6.1.4 Імена файлів
- •Тема «Організація інформації у файловій системі»
- •6.2.1 Розділи
- •6.2.2 Каталоги
- •6.2.3 Поняття шляху
- •6.2.4 Зв'язок розділів і структури каталогів
- •6.3.1 Жорсткі зв'язки
- •6.3.2 Символічні зв'язки
- •Тема «Атрибути файлів»
- •6.4.1.Атрибути файлів.
- •6.4.2. Атрибути безпеки файлів
- •Тема «Організація інформації у файловій системі»
- •6.5.1 Підходи до використання файлів процесами
- •6.5.2 Загальні відомості про файлові операції
- •6.5.3 Змінні середовища
- •6.5.4 Команди msdos для роботи с каталогами та файлами
- •Тема 6.6 «Міжпроцесова взаємодія на основі інтерфейсу файлової системи»
- •6.6.2 Файлові блокування posix
- •6.6.3 Файлові блокування у Win32
- •Тема 6.7 «Команди загальносистемного призначення»
- •6.7.1 Команди обслуговування дисків.
- •6.7.2 Командний файл autoexec.Вat.
- •6.7.3 Файл конфігурації системи config.Sys.
- •Тема 6.8 «Командні файли» Самостійна робота № 28
- •6.8.1.Призначення та можливості пакетних командних файлів.
- •6.8.2. Командні файли з заміняючими параметрами.
- •Безумовний перехід в командних файлах
- •6.8.4. Організація діалогу переходи в командних файлах.
- •Тема 6.22 Лабораторна робота №11 «Командна оболонка shell, стандартні потоки вводу/виводу, фільтри і конвеєри»
Тема «Організація інформації у файловій системі»
План
1. Підходи до використання файлів процесами.
2. Загальні відомості про файлові операції. Структура команди MSDOS.
3. Змінні середовища.
4. Команди MSDOS для роботи с каталогами та файлами
Мета: Вивчити Загальні відомості про файлові операції. Структура команди MSDOS. Змінні середовища. Команди MSDOS для роботи с каталогами та файлами.
6.5.1 Підходи до використання файлів процесами
Підходи до використання файлів із процесу бувають такі: зі збереженням (stateful) : без збереження стану (stateless).
У разі збереження стану є спеціальні операції, які готують файл до використання у процесі (відкривають його) і скасовують цю готовність {закривають його). Інші операції використовують структури даних, підготовлені під час відкриття файла, і можуть виконуватися тільки доти, поки файл не буде закритий. Перевагою такого підходу є висока продуктивність, оскільки під час відкриття файла потрібні структури даних завантажуються у пам'ять.
Якщо стан не зберігають, кожна операція роботи із файлом (читання, записування тощо) супроводжується повною підготовкою файла до роботи (кожна операція починається відкриттям файла і завершується закриттям). Хоча такий підхід програє у продуктивності, його можна використати для підвищення надійності роботи системи за високої ймовірності того, що файлова операція зазнає краху, внаслідок чого структури даних відкритих файлів залишаться в некоректному стані. Так можна робити у випадку, коли файлову систему використовують через мережу, тому що у будь-який момент може статися розрив мережного з'єднання.
6.5.2 Загальні відомості про файлові операції
Назвемо основні файлові операції, які звичайно надає операційна система для використання у прикладних програмах.
Відкриття файла. Після відкриття файла процес може із ним працювати (наприклад, робити читання і записування). Відкриття файла зазвичай передбачає завантаження в оперативну пам'ять спеціальної структури даних - дескриптора файла, який визначає його атрибути та місце розташування на диску. Наступні виклики використовуватимуть цю структуру для доступу до файла.
Закриття файла. Після завершення роботи із файлом його треба закрити. При цьому структуру даних, створену під час його відкриття, вилучають із пам'яті. Усі дотепер не збережені зміни записують на диск.
Створення файла. Ця операція спричиняє створення на диску нового файла нульової довжини. Після створення файл автоматично відкривають.
Вилучення файла. Ця операція спричиняє вилучення файла і вивільнення зайнятого ним дискового простору. Вона зазвичай недопустима для відкритих файлів.
Читання з файла. Ця операція звичайно зводиться до пересилання певної кількості байтів із файла, починаючи із поточної позиції, у заздалегідь виділений для цього буфер пам'яті режиму користувача.
Записування у файл. Здійснюють із поточної позиції, дані записують у файл із заздалегідь виділеного буфера. Якщо на цій позиції вже є дані, вони будуть перезаписані. Ця операція може змінити розмір файла.
Переміщення покажчика поточної позиції. Перед операціями читання і записування слід визначити, де у файлі перебувають потрібні дані або куди треба їх записати, задавши за допомогою цієї операції поточну позицію у файлі. Зазначимо, що якщо перемістити покажчик файла за його кінець, а потім виконати операцію записування, довжина файла збільшиться. Отримання і задання атрибутів файла. Ці дві операції дають змогу зчитувати поточні значення всіх або деяких атрибутів файла або задавати для них нові значення.
Структура команди MSDOS
Команда состоит из имени команды и параметров. Различают внутренние команды, которые выполняются самим интерпретатором, и внешние команды, которые представляют собой программы, расположенные в системном каталоге и ничем другим не отличающиеся от прочих программ.
Если интерпретатор команд не опознает команду как внутреннюю и не может найти ее имя среди выполняемых файлов в системных каталогах, он считает, что введено имя прикладной программы, которую следует запустить. Если перед именем программы не указан путь, то интерпретатор ищет программу в текущем каталоге (папке), в системных каталогах, а также в тех каталогах, пути к которым содержатся в системной переменной PATH. Заглавные и строчные буквы не различаются при поиске файла.
Если имя файла или каталога содержит пробелы или другие специальные символы, то его следует заключать в кавычки, например, "C:\Program Files\Far\Far.exe".
Среди параметров команд чаще всего встречаются имена файлов, подлежащих обработке, и ключи, уточняющие режим выполнения команды. Ключ чаще всего представляет собой букву, перед которой обычно ставится символ “/”. Параметры отделяются друг от друга пробелами.
Особую роль играют параметры перенаправления стандартных вывода и ввода: “>”, “>>” и “<”. Перенаправление стандартного вывода с помощью знака “>” означает, что те результаты работы команды или прикладной программы, которые обычно выводятся на экран монитора, должны направляться в тот файл или на то устройство, имя которого указано сразу после знака “>”. Из имен устройств чаще всего используется PRN – системный принтер или NUL – пустое устройство, которое означает, что результаты не должны никуда выводиться.
В качестве примера рассмотрим перенаправление стандартного вывода команды DIR. Обычно эта команда выводит на экран содержимое каталога, однако если команда задана в форме “DIR >PRN”, то это содержимое будет выдано на принтер, а в форме “DIR >DIRFILE.TXT” – в файл DIRFILE.TXT.
Параметр “>>” действует почти так же, как “>”, но при выводе в существовавший ранее файл знак “>” означает, что прежнее содержимое файла следует стереть, а знак “>>” – что новые данные должны добавляться в конец файла. Это позволяет накапливать в одном файле результаты выполнения нескольких команд. Параметр перенаправления стандартного ввода “<” используется в тех случаях, когда команда или программа, обычно принимающая данные с клавиатуры, должна взять их из указанного файла.
Парамеры перенаправления можно записывать в любом месте командной строки, но обычно их указывают в конце строки.
В некоторых случаях бывает удобно объединить вызовы двух или более команд в так называемый конвейер. Это возможно, если первая команда выдает данные на стандартный вывод, а вторая – принимает данные для обработки со стандартного ввода. В этом случае запись в одной строке двух команд, разделенных символом “|”, означает, что стандартный вывод первой команды будет сохранен во временном файле и затем использован в качестве стандартного ввода второй команды. Например, если команда “TYPE A.TXT” выводит на экран длинный текстовый файл, то конвейер “TYPE A.TXT | MORE” будет выдавать этот файл порциями, умещающимися на экране (см. описание команды MORE).
Если пользователь хочет в качестве параметра команды указать группу из нескольких файлов (которые нужно, например, скопировать на дискету или удалить), то он может использовать символы шаблона “*” и “?”. При этом символ “*” означает «любое количество любых символов, а может и ни одного», в то время как “?” означает «любой один символ». Таким образом, команда “DEL *.TMP” означает удаление всех файлов, имя которых заканчивается на “.TMP”.
В Windows NT имеется также возможность опускать имя запускаемой программы, указывая вместо этого имя файла, подлежащего обработке. Для этого следует предварительно установить ассоциацию между расширением имени файла и программой, которая должна вызываться для его обработки.
В приведенном ниже описании конкретных команд квадратные скобки “[…]” означают необязательные параметры команды, которые могут быть опущены. Сами квадратные скобки не используются при вводе команд.
