我需要一次读取视频文件的字节为1MB块,并将该数据分配给字节流。并且在第二次开始读取字节时,它必须从上一次执行的结束点开始并读取1MB的字节。必须这样做,直到它读取文件的最后一个字节。我尝试使用以下代码,但似乎这个memcpy方法只支持从文件的开头读取1MB大小。
//original size value is 1024*1024
do{
if((index+size) > fileSize){
size = fileSize-index;
}
Byte *buff = (Byte*)malloc(size);
memcpy(buff, [data2 bytes], size);
//some logic goes here to pass the already read bytes
index+=size;
}while(index<fileSize);
任何人都可以帮我这样做吗?我是Objective-C和C相关语言的新手。 谢谢
答案 0 :(得分:0)
如果你有memcpy的问题,请使用CopyMemory:
void CopyMemory( __in PVOID目的地, __in const VOID *来源, __在SIZE_T长度 );
用法是相同的
你能解释一下你的问题吗?我没有明白你的意思?
此致
答案 1 :(得分:0)
当您读取文件时,文件指针会自动移动。看这个例子:
#include <windows.h>
int main()
{
HANDLE hFile = CreateFile("c:\\a.txt",GENERIC_WRITE|GENERIC_READ,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD read;
BYTE buffer[0x400];
do
{
ReadFile(hFile,buffer,0x400,&read,NULL);
//process the data (buffer)
}while(read);
CloseHandle(hFile);
}