Re: 82.8 질문입니다.
, 도장_ 관리자님이 작성while (size > currPos)
{
PFILE_NODE node = malloc(sizeof(FILE_NODE));
if (fread(&node->desc, sizeof(FILE_DESC), 1, fp) < 1)
{
printf("아카이브 파일 읽기 실패\n");
free(node);
ret = -1;
goto FINALIZE;
}
node->next = archive->fileList.next;
archive->fileList.next = node;
currPos = ftell(fp) + node->desc.size;
fseek(fp, currPos, SEEK_SET);
}
이 부분에서 쓰이는데 질문의 의도가 파악되지 않습니다.
UNIT 82는 그림을 그려서 이해하는 게 더 이해하기 쉽습니다.
해당 부분은 아카이브 파일에서 파일 정보를 읽어와서 동적으로 할당한 내부 리스크에 파일 정보를 연결 리스트로 연결하는 부분입니다. 즉, 파일 정보를 메모리로 로딩하는 과정입니다.
즉, 아카이브 파일에 리스트가 10개(즉, 파일이 10개)이면 로딩 과정에서도 동적 할당한 node 연결 리스트 10개를 만드는 과정입니다.