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

UptoLike

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

44
HANDLE hFile, // дескриптор файла
LPVOID lpBuffer, // буфер данных
DWORD nNumberOfBytesToRead, // число байтов для чтения
LPDWORD lpNumberOfBytesRead, // число прочитанных байтов
LPOVERLAPPED lpOverlapped // асинхронный буфер
);
Функция ReadFile читает данные из файла, начиная с позиции, обозначенной
указателем файла. После того, как операция чтения была закончена, указатель файла
перемещается на число действительно прочитанных байтов, если дескриптор файла
не создан с атрибутом асинхронной операции. Если дескриптор файла создается для
асинхронного ввода - вывода, приложение должно переместить позицию указателя
файла после операции чтения.
Параметры:
hFile дескриптор файла, который читается. Дескриптор файла должен быть, создан
с правом доступа GENERIC_READ.
lpBuffer указатель на буфер, который принимает прочитанные данные из файла.
nNumberOfBytesToRead число байтов, которые читаются из файла.
lpNumberOfBytesRead указатель на переменную, которая получает число
прочитанных байтов. Функция ReadFile устанавливает это значение в нуль перед
началом любой работы или проверкой ошибок.
lpOverlapped указатель на структуру OVERLAPPED. Эта структура требуется
тогда, если параметр hFile создавался с флажком FILE_FLAG_OVERLAPPED.
Возвращаемые значения
Функция ReadFile возвращает значение тогда, когда выполнено одно из ниже
перечисленных условий:
операция записи завершается на записывающем конце канала,
затребованное число байтов прочитано,
или происходит ошибка.
Если функция завершается успешно, величина возвращаемого значения не
ноль. Если функция завершается с ошибкой, величина возвращаемого значения
ноль. Чтобы получить дополнительные сведения об ошибке, вызовите
GetLastError.
Функция WriteFile
BOOL WriteFile
(
HANDLE hFile, // дескриптор файла
LPCVOID lpBuffer, // буфер данных
DWORD nNumberOfBytesToWrite, // число байтов для записи
LPDWORD lpNumberOfBytesWritten, // число записанных байтов
LPOVERLAPPED lpOverlapped // асинхронный буфер
);
Функция WriteFile пишет данные в файл с места, обозначенного указателем
позиции в файле. Эта функция предназначена и для синхронной, и для асинхронной
     HANDLE hFile,                     // дескриптор файла
     LPVOID lpBuffer,                  // буфер данных
     DWORD nNumberOfBytesToRead,       // число байтов для чтения
     LPDWORD lpNumberOfBytesRead,      // число прочитанных байтов
     LPOVERLAPPED lpOverlapped         // асинхронный буфер
);

      Функция ReadFile читает данные из файла, начиная с позиции, обозначенной
указателем файла. После того, как операция чтения была закончена, указатель файла
перемещается на число действительно прочитанных байтов, если дескриптор файла
не создан с атрибутом асинхронной операции. Если дескриптор файла создается для
асинхронного ввода - вывода, приложение должно переместить позицию указателя
файла после операции чтения.
      Параметры:
hFile – дескриптор файла, который читается. Дескриптор файла должен быть, создан
с правом доступа GENERIC_READ.
lpBuffer – указатель на буфер, который принимает прочитанные данные из файла.
nNumberOfBytesToRead – число байтов, которые читаются из файла.
lpNumberOfBytesRead – указатель на переменную, которая получает число
прочитанных байтов. Функция ReadFile устанавливает это значение в нуль перед
началом любой работы или проверкой ошибок.
lpOverlapped – указатель на структуру OVERLAPPED. Эта структура требуется
тогда, если параметр hFile создавался с флажком FILE_FLAG_OVERLAPPED.
      Возвращаемые значения
      Функция ReadFile возвращает значение тогда, когда выполнено одно из ниже
перечисленных условий:
– операция записи завершается на записывающем конце канала,
– затребованное число байтов прочитано,
– или происходит ошибка.
      Если функция завершается успешно, величина возвращаемого значения – не
ноль. Если функция завершается с ошибкой, величина возвращаемого значения –
ноль. Чтобы получить дополнительные сведения об ошибке, вызовите
GetLastError.

     Функция WriteFile
BOOL WriteFile
(
     HANDLE hFile,                     // дескриптор файла
     LPCVOID lpBuffer,                 // буфер данных
     DWORD nNumberOfBytesToWrite,      // число байтов для записи
     LPDWORD lpNumberOfBytesWritten,   // число записанных байтов
     LPOVERLAPPED lpOverlapped         // асинхронный буфер
);

     Функция WriteFile пишет данные в файл с места, обозначенного указателем
позиции в файле. Эта функция предназначена и для синхронной, и для асинхронной
                                                                              44