- •Минобрнауки россии
- •Е.В. Грачева Системное программное обеспечение персональных эвм
- •1 Программирование в операционной среде
- •1.1 Программирование в среде однозадачной операционной системы
- •1.2 Программирование в среде ос Windows
- •1.2.1 Основные понятия
- •1.2.2 Программный интерфейс
- •1.2.2.1 Сообщения, очередь сообщений
- •1.2.2.2 Процедура окна
- •1.2.3 Использование динамических библиотек
- •1.2.3.1.Описание api-функции LoadLibrary
- •1.2.3.2 Описание функции GetProcAddress
- •1.2.3.3 Описание функции FreeLibrary
- •1.2.4 Описание некоторых api-функций
- •1.2.4.1.Функции для создания пользовательского интерфейса
- •1.2.4.1.1 Ввод данных с клавиатуры
- •1.2.4.1.2 Ввод данных с помощью "мыши"
- •1.2.4.1.3 Диалоговые окна
- •1.2.4.2 Функции для получения информации о системе
- •1.2.4.2.1 Информация об аппаратной конфигурации
- •1.2.4.2.3 Конфигурация ос
- •1.2.4.2.4 Системные параметры
- •1.2.4.2.5 Внешний вид системных элементов
- •1.2.4.3 Функции управления памятью
- •1.2.4.3.1 Основные функции управления памятью
- •1.2.4.4.Функции управления файлами
- •1.2.4.4 Функции управления некоторыми устройствами
- •Контрольные вопросы
- •35. Охарактеризовать функцию для определения конфигурации ос
- •36. Охарактеризовать функции об установке системных параметров.
- •2.Ассемблеры
- •2.1 Архитектура процессоров ia-32
- •2.1.1.Основная исполнительная среда микропроцессора с архитектурой ia32
- •2.1.2 Режимы работы и используемая модель памяти процессоров с архитектурой ia32
- •2.1.3 Архитектура ia-32 системного уровня
- •2.2.Программирование на языке ассемблера
- •2.2.1 Метки
- •2.2.2 Директивы
- •2.2.3 Формат команды
- •2.2.4 Система команд микропроцессоров с архитектурой ia32
- •2.2.4.1 Команды пересылки данных
- •Ins строка, dx
- •2.2.4.2 Арифметические операции
- •2.2.4.3 Операции сдвига
- •2.2.4.4 Битовые операции
- •2.2.4.5 Команды для организации циклов
- •1.3.1.1 Команды сравнения
- •2.2.4.6 Команды передачи управления
- •2.2.4.7 Системные команды
- •2.2.4.8 Команды математического сопроцессора
- •2.2.5 Технология программирования
- •2.3 Макроязыки
- •3.Трансляторы
- •3.1 Структура компиляторов и интерпретаторов, лексический, синтаксический и семантический анализаторы, генератор кода
- •3.1.1.Распределение памяти, виды переменных
- •3.1.2.Статическое и динамическое связывание
- •3.2 Загрузчики
- •3.2.1 Функции загрузчика
- •3.2.1 Настраивающий и динамический загрузчики
- •3.3 Подключение библиотек
- •4. Формальные языки и грамматики
- •4.1 Типы грамматик
- •4.1.1 Вывод цепочек
- •4.1.2 Конечный и магазинный автоматы, распознаватели и преобразователи, построение автомата по заданной грамматике
- •Приложения Приложение а
- •Оглавление
- •4. Формальные языки и грамматики
1.2.4.4.Функции управления файлами
Файл - поименованная область с данными в файловой системе, к которой пользователь имеет доступ и которой пользователь может управлять. Файл должен иметь уникальное имя в своем каталоге. Он состоит из одного или нескольких потоков байт, которые содержат набор связанных данных и набор атрибутов (свойств), которые описывают файл или данные внутри файла.
ОС семейства Windows управляют файлами посредством файловых объектов, дескрипторов (описателей) файлов и файловых указателей.
В таблице 21 перечислены некоторые функции, используемые для управления файлами.
Таблица 11 - Функции управления файлами
Функция |
Описание |
CreateFile |
Создает или открывает файл, каталог, физический диск, буфер консольного ввода и т.п. В качестве параметров этой функции задаются:
В результате выполнения функции CreateFile возвращается дескриптор созданного или открытого файла. |
DeleteFile |
Удаляет существующий файл. В качестве входного параметра задается указатель на имя файла. В случае успешного выполнения, функция возвращает ненулевое значение |
CopyFile |
Копирует существующий файл в новый файл. В качестве входных параметров задаются:
Атрибуты защиты копироваться не будут, а вот атрибуты файла - скопируются. |
FindFirstFile |
Ищет в каталоге файл или подкаталог с заданным именем. В качестве входного параметра задается указатель на имя искомого файла или каталога, а в качестве результата работы функции FindFirstFile возвращается указатель на структуру данных WIN32_FIND_DATA, в которой собирается информация о найденном файле или каталоге (атрибуты файла, время создания и последнего доступа, размер, полное и краткое имя файла). |
SetFileAttributes |
Устанавливает атрибуты файла. В качестве входных параметров задается указатель на имя файла, для которого устанавливаются атрибуты и 32-х разрядное слово, хранящее значение устанавливаемых атрибутов файла. Часть кодов атрибутов файлов в Windows совпадает с кодами атрибутов файлов для MS-DOS. |
SetFilePointer |
Устанавливает файловый указатель, который используется при чтении и записи в определенную позицию. В качестве входных параметров задается дескриптор файла, 64-х двоичное число со знаком, определяющее количество байт и направление смещения указателя (это число представлено в виде двух входных параметров, один - младшие 32 бита, второй, дополнительные - старшие 32 бита), и положение от которого будет осуществляться позиционирование файлового указателя (начало файла, конец файла или текущее положение файлового указателя). |
ReadFile |
Считывает данные из файла, начиная с позиции, на которую указывает файловый указатель. В качестве входных параметров задаются:
При успешном завершении процесса чтения функция ReadFile возвращает ненулевое значение (в регистре EAX). Если функция ReadFile вернула ненулевое значение, а переменная хранящая количество считанных байт равна 0, это значит что в процессе чтения был достигнут конец файла. Если функция ReadFile вернула значение равное 0, значит произошла какая-то ошибка. |
WriteFile |
Записывает данные в файл, начиная с позиции, определяемой файловым указателем. В качестве входных параметров задаются:
При успешном завершении процесса чтения функция ReadFile возвращает ненулевое значение (в регистре EAX). |
FlushFileBuffers
|
Сбрасывает все буферы указанного файла и записывает все буферизованные данные в файл. В качестве входного параметра задается дескриптор файла. При успешном завершении процесса чтения функция FlushFileBuffers возвращает ненулевое значение (в регистре EAX). |
LockFile |
Блокирует определенный файл для единоличного пользования вызывающим процессом. В качестве входных параметров задаются:
Поскольку два последних параметра могут превышать значения, умещающиеся в 32-х разрядное двоичное число, эти параметры состоят из двух частей: старшего 32-х разрядного слова и младшего. При успешном завершении процесса чтения функия LockFile возвращает ненулевое значение (в регистре EAX). |
Необходимо отметить, что при чтении/записи данных, пользовательское приложение не должно иметь доступ к буферу данных, до окончания всего процесса чтения/записи.
