Операционные системы. Кручинин А.Ю. - 43 стр.

UptoLike

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

43
необходимо, чтобы один процесс записывал туда, к примеру, текстовую строку, а
другой считывал. При этом, осуществлялся поочередный доступ к файлу только
один процесс может работать с ним. Для работы с файлами средствами API
предназначена функция:
Функция CreateFile
HANDLE CreateFile
(
LPCTSTR lpFileName, // имя файла
DWORD dwDesiredAccess, // режим доступа
DWORD dwShareMode, // совместный доступ
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // SD (дескр. защиты)
DWORD dwCreationDisposition, // как действовать
DWORD dwFlagsAndAttributes, // атрибуты файла
HANDLE hTemplateFile // дескр.шаблона файла
);
Функция CreateFile создает или открывает каталог, физический диск, том,
буфер консоли (CONIN$ или CONOUT$), устройство на магнитной ленте,
коммуникационный ресурс, почтовый слот или именованный канал. Функция
возвращает дескриптор, который может быть использован для доступа к объекту.
Параметр lpFileName адрес строки, содержащей имя файла, который вы
собираетесь создать или открыть. Параметр dwDesiredAccess определяет тип
доступа, который должен быть предоставлен к открываемому файлу.
С помощью параметра dwShareMode задаются режимы совместного
использования открываемого или создаваемого файла.
Через параметр lpSecurityAttributes необходимо передать указатель на
дескриптор защиты или значение NULL, если этот дескриптор не используется.
Параметр dwCreationDistribution определяет действия, выполняемые функцией
CreateFile, если приложение пытается создать файл, который уже существует.
Параметр dwFlagsAndAttributes задает атрибуты и флаги для файла.
И, наконец, последний параметр hTemplateFile предназначен для доступа к
файлу шаблона с расширенными атрибутами создаваемого файла.
В случае успешного завершения функция CreateFile возвращает
идентификатор созданного или открытого файла (или каталога).
При ошибке возвращается значение INVALID_HANDLE_VALUE не NULL,
как можно было бы предположить). Код ошибки можно определить при помощи
функции GetLastError.
Закрытие файла осуществляется с использование функции CloseHandle.
Запись и чтение из файла осуществляется с помощью функций ReadFile и
WriteFile:
Функция ReadFile
BOOL ReadFile
(
необходимо, чтобы один процесс записывал туда, к примеру, текстовую строку, а
другой считывал. При этом, осуществлялся поочередный доступ к файлу – только
один процесс может работать с ним. Для работы с файлами средствами API
предназначена функция:

     Функция CreateFile
HANDLE CreateFile
(
    LPCTSTR lpFileName,                           // имя файла
    DWORD dwDesiredAccess,                        // режим доступа
    DWORD dwShareMode,                            // совместный доступ
    LPSECURITY_ATTRIBUTES lpSecurityAttributes,   // SD (дескр. защиты)
    DWORD dwCreationDisposition,                  // как действовать
    DWORD dwFlagsAndAttributes,                   // атрибуты файла
    HANDLE hTemplateFile                          // дескр.шаблона файла
);

     Функция CreateFile создает или открывает каталог, физический диск, том,
буфер консоли (CONIN$ или CONOUT$), устройство на магнитной ленте,
коммуникационный ресурс, почтовый слот или именованный канал. Функция
возвращает дескриптор, который может быть использован для доступа к объекту.
     Параметр lpFileName – адрес строки, содержащей имя файла, который вы
собираетесь создать или открыть. Параметр dwDesiredAccess определяет тип
доступа, который должен быть предоставлен к открываемому файлу.
     С помощью параметра dwShareMode задаются режимы совместного
использования открываемого или создаваемого файла.
     Через параметр lpSecurityAttributes необходимо передать указатель на
дескриптор защиты или значение NULL, если этот дескриптор не используется.
Параметр dwCreationDistribution определяет действия, выполняемые функцией
CreateFile, если приложение пытается создать файл, который уже существует.
     Параметр dwFlagsAndAttributes задает атрибуты и флаги для файла.
     И, наконец, последний параметр hTemplateFile предназначен для доступа к
файлу шаблона с расширенными атрибутами создаваемого файла.
     В случае успешного завершения функция CreateFile возвращает
идентификатор созданного или открытого файла (или каталога).
     При ошибке возвращается значение INVALID_HANDLE_VALUE (а не NULL,
как можно было бы предположить). Код ошибки можно определить при помощи
функции GetLastError.
     Закрытие файла осуществляется с использование функции CloseHandle.
Запись и чтение из файла осуществляется с помощью функций ReadFile и
WriteFile:

     Функция ReadFile
BOOL ReadFile
(

                                                                           43