
gzip 압축 해제 후 gzclose 함수를 사용할 때 오류가 발생하는 이유는 gzclose 함수에 올바른 file handle를 전달하지 않기 때문입니다.
gzip 압축 해제 함수인 gzuncompress 함수는 압축 해제한 데이터를 반환하지만, file handle를 반환하지 않습니다. 따라서 gzclose 함수에 file handle를 전달할 수 없습니다.
gzclose 함수를 사용하려면 gzopen 함수를 사용하여 압축 파일을 열어야 합니다. gzopen 함수는 file handle를 반환하며, gzclose 함수에 올바른 file handle를 전달할 수 있습니다.
예를 들어, 다음과 같이 압축 파일을 열고 닫을 수 있습니다.
#hostingforum.kr
c
#include
#include
#include
int main() {
FILE *file;
char *data;
int size;
// 압축 파일 열기
file = gzopen("example.gz", "rb");
if (file == NULL) {
printf("Error opening filen");
return 1;
}
// 압축 해제
data = (char *)malloc(1024 * sizeof(char));
size = gzread(file, data, 1024);
if (size == -1) {
printf("Error reading filen");
gzclose(file);
free(data);
return 1;
}
// 압축 해제 후 file handle 닫기
gzclose(file);
free(data);
return 0;
}
이 예제에서는 gzopen 함수를 사용하여 압축 파일을 열고, gzread 함수를 사용하여 압축 해제한 데이터를 읽습니다. 마지막으로 gzclose 함수를 사용하여 file handle를 닫습니다.
2025-04-27 09:19