Операционные системы. Учебное пособие. Марапулец Ю.В. - 230 стр.

UptoLike

Составители: 

Функция mmioOpen() открывает файл и управляет параметрами его буфера.
HMMIO mmioOpen( LPTSTR lpszFilename, // имя открываемого файла
LPMMIOINFO lpmmioinfo, // место для размещения
// информации о файле
DWORD fdwOpen ); // флаги
Первый параметр содержит имя файла, второй - информацию о его текущем со-
стоянии. Если вы не хотите изменять настройки, заданные по умолчанию, например
размер буфера ввода/вывода (8 Кб), параметр lpmmioinfo должен содержать значение
NULL. Третий параметр содержит набор флагов. Ниже представлены некоторые из них.
MMIO_READ - Допускает только чтение файла.
MMIO_WRITE - Допускает только запись файла.
MMIO_READWRIТЕ - Допускает чтение и запись файла.
MMIO_CREATE - Создает новый файл.
MMIO_DELETE - Удаляет существующий файл.
MMIO_EXCLUSIVE - Предотвращает использование файла другими программами.
MMIO_DENYWRITE - Предотвращает изменение файла другими программами.
MMIO_ALLOCBUF - Обеспечивает буферизацию ввода/вывода.
В библиотеках языка С функция fopen начинает буферизованный ввод/вывод, а
функция _open - небуферизованный ввод/вывод. Аналогичные действия можно задать с
помощью флага MMIO_ALLOCBUF. Система откликается на соответствующую ко-
манду выделением буфера, размер которого задан по умолчанию (8 Кб). Чтобы увели-
чить или уменьшить размер буфера, нужно указать соответствующее значение в струк-
туре MMIOINFO или вызвать функцию mmioSetBuffer().
Функция mmioOpen() возвращает дескриптор мультимедийного файла. Такие деск-
рипторы не совместимы с дескрипторами других файлов и их нельзя использовать с
другими файловыми функциями С-библиотек или функциями подсистемы Win32.
Функции mmioRead(), mmioWrite() и mmioClose() выполняют с мультимедийными
файлами операции чтения, записи и закрытия соответственно.
Ряд функций ввода/вывода специально ориентирован на выполнение операций с
блоками данных. Чтобы добавить в файл новый блок, следует вызвать функцию mmio-
CreateChunk(). Эта команда записывает заголовок блока, включающий тег, размер, а
также (для блоков RIFF и LI ST) код содержимого и устанавливает позицию указателя
файла на том байте, с которого начнется запись двоичных данных с помощью функции
mmioWrite().
MMRESULT mmioCreateChunk( HMMIO hmmio, // дескриптор RIFF-файла
LPMMCKINFO lpmmcki, // описание нового блока
UINT uOptions ); // параметры создания
Для записи блоков RIFF и LIST установите флаги MMIO_CREATERIFF и
MMIO_CREATELIST соответственно.
Для перемещения указателя файла от блока к блоку служат функции
mmioDescend() и mmioAscend(). Первая перемещает указатель на начало блока данных, а
вторая - на его конец.
MMRESULT mmioDescend( HMMIO hmmio, // дескриптор RIFF-файла
LPMMCKINFO lpmmcki, // место для записи
// информации о блоке
232
     Функция mmioOpen() открывает файл и управляет параметрами его буфера.

HMMIO mmioOpen( LPTSTR lpszFilename,               // имя открываемого файла
                LPMMIOINFO lpmmioinfo,             // место для размещения
                                                   // информации о файле
                   DWORD fdwOpen );                // флаги

     Первый параметр содержит имя файла, второй - информацию о его текущем со-
стоянии. Если вы не хотите изменять настройки, заданные по умолчанию, например
размер буфера ввода/вывода (8 Кб), параметр lpmmioinfo должен содержать значение
NULL. Третий параметр содержит набор флагов. Ниже представлены некоторые из них.
MMIO_READ - Допускает только чтение файла.
MMIO_WRITE - Допускает только запись файла.
MMIO_READWRIТЕ - Допускает чтение и запись файла.
MMIO_CREATE - Создает новый файл.
MMIO_DELETE - Удаляет существующий файл.
MMIO_EXCLUSIVE - Предотвращает использование файла другими программами.
MMIO_DENYWRITE - Предотвращает изменение файла другими программами.
MMIO_ALLOCBUF - Обеспечивает буферизацию ввода/вывода.
     В библиотеках языка С функция fopen начинает буферизованный ввод/вывод, а
функция _open - небуферизованный ввод/вывод. Аналогичные действия можно задать с
помощью флага MMIO_ALLOCBUF. Система откликается на соответствующую ко-
манду выделением буфера, размер которого задан по умолчанию (8 Кб). Чтобы увели-
чить или уменьшить размер буфера, нужно указать соответствующее значение в струк-
туре MMIOINFO или вызвать функцию mmioSetBuffer().
     Функция mmioOpen() возвращает дескриптор мультимедийного файла. Такие деск-
рипторы не совместимы с дескрипторами других файлов и их нельзя использовать с
другими файловыми функциями С-библиотек или функциями подсистемы Win32.
     Функции mmioRead(), mmioWrite() и mmioClose() выполняют с мультимедийными
файлами операции чтения, записи и закрытия соответственно.
     Ряд функций ввода/вывода специально ориентирован на выполнение операций с
блоками данных. Чтобы добавить в файл новый блок, следует вызвать функцию mmio-
CreateChunk(). Эта команда записывает заголовок блока, включающий тег, размер, а
также (для блоков RIFF и LI ST) код содержимого и устанавливает позицию указателя
файла на том байте, с которого начнется запись двоичных данных с помощью функции
mmioWrite().

MMRESULT mmioCreateChunk( HMMIO hmmio,             // дескриптор RIFF-файла
              LPMMCKINFO lpmmcki,                  // описание нового блока
              UINT uOptions );                     // параметры создания

     Для записи блоков RIFF и LIST установите флаги MMIO_CREATERIFF и
MMIO_CREATELIST соответственно.
     Для перемещения указателя файла от блока к блоку служат функции
mmioDescend() и mmioAscend(). Первая перемещает указатель на начало блока данных, а
вторая - на его конец.

MMRESULT mmioDescend( HMMIO hmmio,       // дескриптор RIFF-файла
                     LPMMCKINFO lpmmcki, // место для записи
                                         // информации о блоке

                                       232