Howdo.
Я работаю в родной Windows.Тем не менее, я ищу написать функцию, прототип которой выглядит примерно так:
void getData(uint8_t* p, std::string const& fn, size_t off,
size_t s, boost::function<void()> const& F);
Итак, у меня есть кусок памяти, предварительно выделенный в куче (с новым).У меня есть файл на диске.Я хотел бы указать указатель на мой кусок памяти ("p"), имя файла ("fn") и смещение в нем ("off"), размер ("s") и обратный вызов ("F"),Я бы хотел, чтобы подпрограмма в конечном итоге вызвала «F», когда моя память «p» была заполнена байтами «s» из файла «fn» со смещением «off».Я гарантирую, что «p», «s» и «off» выровнены с некоторой предопределенной степенью 2, но я бы не хотел, чтобы происходило копирование.В идеале это будет прямая передача данных с диска в мое местоположение напрямую.
Я изучил отображение файла в памяти, но для этого потребовалось бы скопировать данные из отображенной области в мое "p".Нет ли более быстрого способа сделать это?