Операционные системы. Программирование в операционной среде Windows
85 OVERLAPPED и не может вернуть результат до завершения операции чтения. Пример вызова: ReadFile(hMyFile, Buffer, fsize, &read, NULL); 6.3. Запись в файл Для записи в файл используется функция WriteFile, которая записывает данные в файл, начиная с позиции, определенной указателем файла. BOOL WriteFile( HANDLE hFile, // дескриптор файла для записи LPCVOID IpBuffer, // указатель на данные для записи DWORD nNumberOfBytesToWrite, // количество байт для записи LPDWORD IpNumberOfBytesWritten, //количество фактически // записанных байтов LPOVERLAPPED IpOverlapped ); //указатель на структуру OVERLAPPED В случае успешного завершения функция возвраш,ает ненулевое значение. Параметр hFile -дескриптор файла для записи, должен быть открыт с доступом GENERIC WRITE. Параметр IpBuffer - указывает на буфер, содержаш,ий данные для записи. Параметр nNumberOfBytesToWrite- определяет количество байт для записи. Параметр IpNumberOfBytesWritten - указатель на количество фактически записанных байтов. Параметр IpOverlapped- указатель на структуру OVERLAPPED. Пример вызова: WriteFile(hMyFile, Buffer, txt_length+l, &written, NULL); 6.4. Перемещение указателя файла Для перемеш,ения указателя по открытому файлу используется функция SetFilePointer: DWORD SetFilePointer( HANDLE hFile, // дескриптор файла LONG IDistanceToMove, // смещение в байтах PLONG IpDistanceToMoveHigh, // указатель на смещение в байтах DWORD dwMoveMethod); // точка отсчета Параметр hFile - дескриптор файла. Параметр IDistanceToMove - количество байт, на которое необходимо сдвинуть указатель. Параметр IpDistanceToMoveHigh - если количество байт, на которое необходимо сдвинуть указатель файла превышает 32 бита, то данный параметр указывает на старшее слово в 64 битном смеш,ении, которое надо осуш,ествить. Значение параметра равно NULL, если смеш,ение не превышает 32 бита. Параметр dwMoveMethod - точка отсчета, от которой необходимо отсчитывать смеш,ение. Возможны следуюш,ие значения параметра dwMoveMethod: FILE BEGIN - точка отсчета - начало файла;
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy