Автор работы: Пользователь скрыл имя, 28 Марта 2012 в 18:55, курсовая работа
В данной пояснительной записке приведено описание алгоритма и исходного кода программы, демонстрирующей возможности ОС по работе с файлами. Разработаны схемы алгоритмов решения задачи. В среде Microsoft Visual Studio 2005 (C++) разработана и отлажена программа, реализующая представленные алгоритмы. Также представлены результаты решения контрольных примеров, выполненные с помощью разработанной программы.
В приложении приведён текст программы.
Описание программы
1.1. Общие сведения о файлах
1.2. Общие сведения о программе
1.3. Функциональное назначение
1.4. Описание логической структуры
1.5. Структурная схема основной программы
1.6. Описание элементов программы
2. Программа в процессе работы
2.1. Создание и редактирование файлов
2.2. Копирование, переименование и удаление файлов
2.3. Поиск файлов
2.4. Просмотр и изменение атрибутов файлов
2.5. Создание ссылок на файлы
2.6. Получение информации о файле
3. Заключение
4. Список используемой литературы
5. Приложение
МИНИСТЕРСТВО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Кафедра САПР
Пояснительная записка
к курсовому проекту по дисциплине
Операционные системы
На тему: «Изучение интерфейса прикладного программирования Win32. Разработка приложения, демонстрирующего возможности ОС по работе с файлами»
Выполнил: КУРЯЕВ Р.М.
Группа 08ВА1
Принял: Гудков А.А.
Пенза 2010 г
- 20 -
Аннотация
В данной пояснительной записке приведено описание алгоритма и исходного кода программы, демонстрирующей возможности ОС по работе с файлами. Разработаны схемы алгоритмов решения задачи. В среде Microsoft Visual Studio 2005 (C++) разработана и отлажена программа, реализующая представленные алгоритмы. Также представлены результаты решения контрольных примеров, выполненные с помощью разработанной программы.
В приложении приведён текст программы.
Пояснительная записка содержит 20 страниц, 11 рисунков и 1 приложение.
- 20 -
Содержание:
1. Описание программы
1.1. Общие сведения о файлах
1.2. Общие сведения о программе
1.3. Функциональное назначение
1.4. Описание логической структуры
1.5. Структурная схема основной программы
1.6. Описание элементов программы
2. Программа в процессе работы
2.1. Создание и редактирование файлов
2.2. Копирование, переименование и удаление файлов
2.3. Поиск файлов
2.4. Просмотр и изменение атрибутов файлов
2.5. Создание ссылок на файлы
2.6. Получение информации о файле
3. Заключение
4. Список используемой литературы
5. Приложение
Файл (англ. file — папка, скоросшиватель) — концепция в вычислительной технике: сущность, позволяющая получить доступ к какому-либо ресурсу вычислительной системы и обладающая рядом признаков:
фиксированное имя (последовательность символов, число или что-то иное, однозначно характеризующее файл);
определённое логическое представление и соответствующие ему операции чтения/записи.
Может быть любой — от последовательности бит до базы данных с произвольной организацией или любым промежуточным вариантом.
Первому случаю соответствуют операции чтения/записи потока и/или массива (то есть последовательные или с доступом по индексу), второму — команды СУБД. Промежуточные варианты — чтение и разбор всевозможных форматов файлов.
В информатике используется следующее определение: файл — это упорядоченная совокупность данных, хранимая на диске и занимающая поименованную область внешней памяти. Величина файла характеризуется объемом содержащейся в нем информации. Для того чтобы систематизировать порядок хранения файлов на дисках их объединяют в каталоги
В отличие от переменной, файл (в частности, его имя) имеет смысл вне конкретной программы. Работа с файлами — по крайней мере, в «простейшем» представлении — реализуется средствами операционных систем, а до их появления реализовывалась их предшественниками — мониторами и библиотеками подпрограмм.
Файловая система
По мере развития вычислительной техники файлов в системах становилось всё больше. Для удобства работы с ними, их, как и другие данные, стали организовывать в структуры (тогда же появились символьные имена). Вначале это был простой массив, «привязанный» к конкретному носителю информации. В настоящее время наибольшее распространение получила древовидная организация с возможностью монтирования и вставки дополнительных связей (то есть ссылок). Соответственно, имя файла приобрело характер пути к файлу: перечисление узлов дерева файловой системы, которые нужно пройти, чтобы до него добраться.
Файл как объект API операционной системы
Операционная система предоставляет приложениям набор функций и структур для работы с файлами. Возможности операционной системы накладывают дополнительные ограничения на ограничения файловой системы. С точки зрения API файл — объект, по отношению к которому могут быть применены функции этого API. На уровне API уже не существенно, существует ли файл как объект файловой системы или является, например, устройством ввода/вывода.
Имя файла
В большинстве файловых систем имя файла используется для указания к какому именно файлу производится обращение. В различных файловых системах ограничения на имя файла сильно различаются:
В FAT16 и FAT12 размер имени файла ограничен 8 символами (3 символа расширения).
В VFAT ограничение 255 байт.
В FAT32, HPFS имя файла ограниченно 255 символами
В NTFS имя ограничено 255 символами Unicode
В ext2/ext3 ограничение 255 байт.
Помимо ограничений файловой системы, интерфейсы операционной системы дополнительно ограничивают набор символов, который допустим при работе с файлами.
Для MS-DOS в имени файла допустимы только заглавные буквы, цифры. Не допустим пробел, знак вопроса, звёздочка, символы больше/меньше, символ вертикальной черты.[1] При вызове системных функций именами файлов в нижнем или смешанном регистре, они приводятся к верхнему регистру.
Для Microsoft Windows в имени файла разрешены заглавные и строчные буквы, цифры, некоторые знаки препинания, пробел. Запрещены символы > < | ? * / \ : ".
Для GNU/Linux (с учётом возможности маскировки) разрешены все символы, кроме / и нулевого байта.
Большинство операционных систем требуют уникальности имени файла в одном каталоге, хотя некоторые системы допускают файлы с одинаковыми именами (например, при работе с ленточными накопителями).
Расширение имени файла
Расширение имени файла (часто расширение файла или расширение) как самостоятельный атрибут файла существует в файловых системах FAT16, FAT32, NTFS, используемых операционными системами MS-DOS, DR-DOS, PC DOS, MS Windows и используется для определения типа файла. Оно позволяет системе определить, каким приложением следует открывать данный файл. По умолчанию в операционной системе Windows расширение скрыто от пользоватея.
В остальных файловых системах расширение — условность, часть имени, отделённая самой правой точкой в имени.
Атрибуты
В некоторых файловых системах предусмотрены атрибуты (обычно это бинарное значение «да»/«нет», кодируемое одним битом). Практически атрибуты не влияют на возможность доступа к файлам, для этого в некоторых файловых системах существуют права доступа.
Время
Для файла могут быть определены следующие временные метки:
Время создания
Время модификации
Время последнего доступа
Операции с файлом
Условно можно выделить два типа операций с файлом — связанные с его открытием, и выполняющиеся без его открытия. Операции первого типа обычно служат для чтения/записи информации или подготовки к записи/чтению. Операции второго типа выполняются с файлом как с «объектом» файловой системы, в котором файл является мельчайшей единицей структурирования.
Операции, связанные с открытием файла
В зависимости от операционной системы те или иные операции могут отсутствовать.
Обычно выделяют дополнительные сущности, связанные с работой с файлом:
хэндлер файла, или дескриптор (описатель). При открытии файла (в случае, если это возможно), операционная система возвращает число (или указатель на структуру), с помощью которого выполняются все остальные файловые операции. По их завершению файл закрывается, а хэндлер теряет смысл.
файловый указатель. Число, являющееся смещением относительно нулевого байта в файле. Обычно по этому адресу осуществляется чтение/запись, в случае, если вызов операции чтения/записи не предусматривает указание адреса. При выполнении операций чтения/записи файловый указатель смещается на число прочитанных (записанных) байт. Последовательный вызов операций чтения таким образом позволяет прочитать весь файл не заботясь о его размере.
файловый буфер. Операционная система (и/или библиотека языка программирования) осуществляет кэширование файловых операций в специальном буфере (участке памяти). При закрытии файла буфер сбрасывается.
режим доступа. В зависимости от потребностей программы, файл может быть открыт на чтение и/или запись. Кроме того, некоторые операционные системы (и/или библиотеки) предусматривают режим работы с текстовыми файлами. Режим обычно указывается при открытии файла.
режим общего доступа. В случае многозадачной операционной системы возможна ситуация, когда несколько программ одновременно хотят открыть файл на запись и/или чтение. Для регуляции этого существуют режимы общего доступа, указывающие на возможность осуществления совместного доступа к файлу (например, файл в который производится запись может быть открыт для чтения другими программами — это стандартный режим работы log-файлов).
Операции
Открытие файла (обычно в качестве параметров передается имя файла, режим доступа и режим совместного доступа, а в качестве значения выступает файловый хэндлер или дескриптор), кроме того обычно имеется возможность в случае открытия на запись указать на то, должен ли размер файла изменяться на нулевой.
Закрытие файла. В качестве аргумента выступает значение, полученное при открытии файла. При закрытии все файловые буферы сбрасываются.
Запись — в файл помещаются данные.
Чтение — данные из файла помещаются в область памяти.
Перемещение указателя — указатель перемещается на указанное число байт вперёд/назад или перемещается по указанному смещению относительно начала/конца. Не все файлы позволяют выполнение этой операции (например, файл на ленточном накопителе может не «уметь» перематываться назад).
Сброс буферов — содержимое файловых буферов с незаписанной в файл информацией записывается. Используется обычно для указания на завершение записи логического блока (для сохранения данных в файле на случай сбоя).
Получение текущего значения файлового указателя.
Операции, не связанные с открытием файла
Операции, не требующие открытия файла оперируют с его «внешними» признаками — размером, именем, положением в дереве каталогов. При таких операциях невозможно получить доступ к содержимому файла, файл является минимальной единицей деления информации.
В зависимости от файловой системы, носителя информации, операционной системой часть операций может быть недоступна.
Список операций с файлами
Открытие для изменения файла
Удаление файла
Переименование файла
Копирование файла
Перенос файла на другую файловую систему/носитель информации
Создание симлинка или хардлинка
Получение или изменение атрибутов файла
Типы файлов
В различных операционных и/или файловых системах могут быть реализованы различные типы файлов; кроме того, реализация различных типов может различаться.
«Обыкновенный файл» — файл, позволяющий операции чтения, записи, перемещения внутри файла
Каталог (англ. directory — алфавитный справочник) — файл, содержащий записи о входящих в него файлах. Каталоги могут содержать записи о других каталогах, образуя древовидную структуру.
Жёсткая ссылка (англ. hardlink, часто используется калька хардлинк) — в общем случае, одна и та же область информации может иметь несколько имён, указывающих на одни и те же данные. В таком случае имена называют жёсткими ссылками (хардлинками). В общем случае после создания хардлинка сказать где «настоящий» файл а где хардлинк невозможно, так как имена равноправны. Сама область данных существует до тех пор пока существует хотя бы одно из имён. Хардлинки возможны только на одном физическом носителе.
Символьная ссылка (симлинк, софтлинк) — файл, содержащий в себе ссылку на другой файл или директорию. Может ссылаться на любой элемент файловой системы, в том числе, и расположенный на другом физическом носителе.
Программа, демонстрирующая возможности ОС по работе с файлами написана в среде Microsoft Visual Studio 2005.
Программа имеет имя «FileMen».
Программа запускается на выполнение при помощи Visual Studio 2005 C++, в случае же присутствия исполняемого файла можно произвести запуск из операционной системы Windows.
Программа предназначена для демонстрации возможностей ОС по работе с файлами.
Программа выполняет следующие функции:
1. Создание и редактирование файлов.
2. Копирование, переименование и удаление файлов.
3. Поиск файлов.
4. Просмотр и изменение атрибутов файлов.
5. Создание ссылок на файлы.
6. Получение информации о файле (размер, дата модификации и др.).
Программа разбита на отдельные функциональные части – элементы, которые распределяются по отдельным уровням иерархии. Каждый из элементов выполняет только свою небольшую задачу по преобразованию данных, что позволяет упростить процесс написания и отладки программы в целом.