현재 C를 배우고 있으며 zlib를 사용하는 작은 프로그램을 만들려고 할 때 몇 가지 문제가 있습니다.C에서 zlib 사용
필자는 (Codeblocks/MinGW를 사용하여) zlib 라이브러리로 내 응용 프로그램을 컴파일 할 수 있었고 컴파일이 정상적으로 작동합니다. 공식 zlib 사이트 (zlib.net)에있는 예제 zpipe.c을 기반으로 예제를 사용했습니다.
실행시 출력 zip 파일이 생성되었지만 형식이 잘못되거나 비어있는 것처럼 보입니다. 7zip을 사용하여 열 수 없습니다.
다음은 내가 수정 한 코드입니다. zpipe.c 내의 main() 함수를 간단하게 대체했습니다.
int main() {
printf("Compression test...");
int ret;
FILE *fpsource;
FILE *fpdest;
fpsource = fopen("test.txt", "rb");
fpdest = fopen("output.zip", "wb");
ret = def(fpsource, fpdest, Z_DEFAULT_COMPRESSION);
if (ret != Z_OK) {
printf("failure\n");
zerr(ret);
}
else {
printf("success..\n");
}
fclose(fpsource);
fclose(fpdest);
return EXIT_SUCCESS;
}
오류 메시지가 나타나고 'success'메시지가 인쇄됩니다. 출력 파일이 손상되었습니다.
파일을 열 때 7zip이 무엇을 말합니까? – CharlesB
@ H2CO3, POSIX에서'EXIT_SUCCESS'는'0' AFAIK로 정의되었지만 다른 값이 될 수도 있습니다 ... – Nim
@CharlesB 그냥 일반적인 "파일 'output.zip'을 아카이브로 열 수 없습니다." –