КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Работа с файлами из программ. Программа, работающая с файлом, должна выполнять ряд обязательных операций, обеспечивающих корректное прочтение и изменение файла
1) Программа должна выполнить операцию открытия файла. Обычно это реализуется вызовом одной из функций API ОС. При открытии файла ОС регистрирует файл как открытый и создаёт внутренние структуры данных, необходимые для работы с ним. Как правило, открытому файлу ОС приписывает некоторое целое число – хэндл. Хэндл является идентификационным номером файла, который используется для указания этого файла при вызове функций API для работы с файлом. Хэндл не имеет физического смысла, он присваивается каждый раз при открытии файла и уничтожается при его закрытии. Открыв несколько раз один и тот же файл, программа получит несколько различных хэндлов. Если несколько одновременно выполняемых программ откроют один и тот же файл, то каждая из них также получит свой хэндл этого файла, не совпадающий с хэндлами, полученными другими программами. При открытии файла обычно указывается режим работы с ним. Файл может быть открыт только на чтение, только на запись, на чтение и запись, на добавление. Кроме того, в многозадачных системах программа обычно должна указать режим разделения файла – параметр, указывающий на то, как будет осуществляться совместный доступ к файлу при попытке его использования одновременно несколькими программами. Обычно можно разрешить другим программам читать файл, записывать в него, удалять его. Несколько параметров обычно могут комбинироваться. 2) Программа может работать с файлом, вызывая функции API ОС. При написании программы на языках высокого уровня, которые имеют собственные встроенные возможности для работы с файлами, программист использует именно эти встроенные возможности, но фактически всё равно происходят вызовы API. Как правило, ОС обеспечивает возможность чтения из файла буфера произвольного размера, запись в файл буфера произвольного размера и перемещение текущей позиции в файле на другое место. Исторически файлы были структурами данных со строго последовательным доступом. Это означает, что при открытии файла на запись или чтение текущая позиция устанавливалась на начало файла, при открытии на добавление – на конец файла. Каждая операция чтения или записи передвигала текущую позицию в файле на соответствующее число байт. Максимум, что было возможно кроме этого – повторное перемещение текущей позиции в первоначальное положение. В последующее время появилась возможность произвольно устанавливать текущую позицию в файле и осуществлять, таким образом, произвольный доступ к хранящимся в нём данным. 3) После окончания работы с файлом программа обязана его закрыть. Закрытие выполняется с помощью вызова соответствующей функции API. Закрытие файла необходимо по нескольким причинам. Во-первых, в момент закрытия на диск сбрасываются те данные, которые ещё не были записаны туда. Завершив программу без закрытия файла можно потерять часть записанных в файл данных. Во-вторых, при закрытии файла ОС уничтожает связанные с ним внутренние структуры данных и фиксирует, что файл более не занят программой, что даёт возможность другим программам работать с файлом без ограничений.
Дата добавления: 2014-12-07; Просмотров: 495; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |