我創建了一個4000塊的文件,塊大小爲4096字節。我寫了一些特定的塊在這個文件中,現在我想讀取這些塊並將結果寫入一個新的輸出文件。C以二進制模式讀取文件並寫入輸出文件
所以我打開我的「RB」模式(storeFile)創建的文件,並在「WB」模式(OUTPUTFILE)的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。
我在做什麼錯?
預先感謝您!
是什麼blocksToRead數組,它是什麼? –
有我早先寫的塊數。 – SevenOfNine
1)我沒有看到你在檢查「文件打開」或「文件讀取」錯誤的位置,2)你可能不需要你的循環中的「fseek()」或「rewind()」* * – paulsm4