ブロックサイズが 4096 バイトの 4000 ブロックのファイルを作成しました。このファイル内のいくつかの特定のブロックに書き込みを行いましたが、これらのブロックを読み取り、結果を新しい出力ファイルに書き込みたいと考えています。
したがって、次のように、「rb」モードで作成したファイル (storeFile) と「wb」モードで出力ファイル (outputFile) を開きます。
FILE * outputFile=fopen(outputFilename,"wb");
FILE * storeFile=fopen(storeFilename, "rb");
今、私は正しい位置を探して、すべてのブロックを新しいファイル (outputfile) に読み込もうとしています:
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 です。
私は何を間違っていますか?
前もって感謝します!