我创建了一个包含 4000 个块的文件,块大小为 4096 字节。我写了这个文件中的一些特定块,现在我想读取这些块并将结果写入一个新的输出文件。
因此,我打开以“rb”模式(storeFile)创建的文件和以“wb”模式(outputFile)创建的输出文件,如下所示:
FILE * outputFile=fopen(outputFilename,"wb");
FILE * storeFile=fopen(storeFilename, "rb");
现在我正在尝试寻找正确的位置并将所有块读取到新文件(输出文件):
for(i=0; i<BlocksUsed; i++)
{
fseek(storeFile,blocksToRead[i]*4096,SEEK_SET);
fread(ptr, 4096,1,storeFile);
fwrite(ptr,4096,1outputFile);
...
rewind(storeFile)
}
不幸的是,这段代码导致的文件不是我写到 storeFile 的文件。文件大小为 BlockUsed*4096Bytes。
我究竟做错了什么?
先感谢您!