powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / отображение файла в память
2 сообщений из 2, страница 1 из 1
отображение файла в память
    #32836009
DenisKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача: нужно скопировать один файл в конец другого, используя проецирование файла в память
Первое, что приходит в голову:
#include <stdio.h>
#include <conio.h>
#include <windows.h>

int main()
{
// Декларация переменных
HANDLE hIn, hOut;
HANDLE hInMap, hOutMap;
LPSTR pIn, pOut;
LPVOID pInFile,pOutFile;
DWORD FsLow,FsLow2;
hIn = CreateFile ("1.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
// Создаем объект отображения файла, используя его размер.
hInMap = CreateFileMapping (hIn, NULL, PAGE_READONLY, 0, 0, NULL);
// Отображаем первый файл
pInFile = MapViewOfFile (hInMap, FILE_MAP_READ, 0, 0, 0);
// Получаем размер первого файла
FsLow = GetFileSize (hIn, NULL);
hOut = CreateFile ("2.txt", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
// Получаем размер второго файла
FsLow2 = GetFileSize (hOut, NULL);
// Создаем объект отображения файла, используя его размер.
hOutMap = CreateFileMapping (hOut, NULL, PAGE_READWRITE, 0,FsLow+FsLow2, NULL);
// Отображаем второй файл
pOutFile = MapViewOfFile (hOutMap, FILE_MAP_WRITE, 0,0 ,0);
pIn = (LPSTR) pInFile;
pOut =(LPSTR) pOutFile;
int i=0;
// Смещаемся в конец второго файла
pOut=pOut+FsLow2;
// Копируем первый файл в конец второго
while (i < FsLow)
{
*pOut=*pIn;
pIn++;
pOut++;
i++;
}
// Закрываем все образы и дескрипторы
UnmapViewOfFile (pOutFile);
UnmapViewOfFile (pInFile);
CloseHandle (hOutMap);
CloseHandle (hInMap);
CloseHandle (hIn);
CloseHandle (hOut);
return(0) ;
}

Вопрос: Как перегнать сразу весь файл или по несколько килобайт?
while (i < FsLow)
{
*pOut=*pIn;
pIn++;
pOut++;
i++;
}
Заранее спасибо.
...
Рейтинг: 0 / 0
отображение файла в память
    #32836433
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может через memcpy(...) ?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / отображение файла в память
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]