Есть ли способ установить начальную позицию из указателя на символ, который был файл в памяти.
Мне нужно прочитать размер извлеченных байтов данных из потока, скопировать их на предоставленный адрес данных и вернуть количество прочитанных байтов.
Это была моя попытка установки memset, я пытаюсь сделать что-то вроде фреда с файлом в памяти.
Надеюсь, кто-нибудь может мне помочь.
typedef signed long long Int64; // osx for example
Int64 FileStream::read(void* data, Int64 size)
{
// make sure, that size was not > as filename
Int64 wanted_buffer = currentposition + size;
if (wanted_buffer > memfile->GetSize())
size = memfile->GetSize() - currentposition;
// tryout with memcpy
memcpy(data, currentposition + memfile->GetBuffer(), size);
currentposition += size;
// like
// return std::fread(data, 1, static_cast<std::size_t>(size), m_file);
return currentposition;
}
Если вы можете использовать C FILE
структура, которую вы можете использовать fseek
на FILE *
,
Других решений пока нет …