fseek 및 fread 함수를 사용하여 지정된 파일 청크를 읽고 다른 파일에 쓰는 중입니다. 어떤 이유로 목적지 파일에서 약 20 바이트가 겹쳐집니다.fseek()는 데이터에 겹침을 초래합니다.
아무에게도,이 쓰레기의 출처를 식별하는 데 도움이 될 수 있습니까? 확실히 fseek 함수로 인해 발생하지만, 그 이유는 알 수 없습니다.
FILE *pSrcFile;
FILE *pDstFile;
int main()
{
int buff[512], i;
long bytesRead;
pSrcFile = fopen ("test.txt" , "r");
pDstFile = fopen ("result1.txt", "a+");
for(i = 0; i < 5; i++)
{
bytesRead = _readFile (&i, buff, 512);
_writeFile(&i, buff, bytesRead);
}
fclose (pSrcFile);
fclose (pDstFile);
}
int _readFile (void* chunkNumber, void* Dstc, long len)
{
int bytesRead;
long offset = (512) * (*(int*)chunkNumber);
fseek(pSrcFile, offset, SEEK_SET);
bytesRead = fread (Dstc , 1, len, pSrcFile);
return bytesRead;
}
int _writeFile (void* chunkNumber, void const * Src, long len)
{
int bytesWritten;
long offset = (512) * (*(int*)chunkNumber);
bytesWritten = fwrite(Src , 1 , len , pDstFile);
return bytesWritten;
}