1
有沒有辦法從char指針設置起始位置,該指針是內存中的文件。C++ memset - 提取大小字節並將它們複製到從緩衝區提供的數據地址
我需要從流中讀取數據提取大小字節,並將它們複製到提供的數據地址並返回讀取的字節數。 這是我的memset試用版,我嘗試做一些fread與內存中的文件。 希望有人能幫助我。
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;
}
是的,但這正是我不想做的。該文件完全在內存中。我已經嘗試過它fread哪些工作。現在我用memset嘗試一些東西,但是我找不到任何文檔來獲取「開始位置後的字節」。 – 2013-05-09 18:04:22
將你的'void *'強制轉換爲'char *'並向它添加一個數字。這會將指針移動到內存中的字節數量。如果這不是你所需要的,那就試着寫一下你的問題吧。它很混亂。 – RandyGaul 2013-05-09 18:05:13
你已經得到了:) – 2013-05-09 18:12:00