【发布时间】:2015-05-06 14:27:32
【问题描述】:
这可能是一个愚蠢的问题。当我尝试解压缩内存中的压缩数据时,出现错误。这是代码。
#include <zlib.h>
#include <stdio.h>
#include <stdlib.h>
int readFile(char *fname, char buf[]) {
FILE *fp = fopen(fname, "rb");
if (fp == NULL) { printf("Failed to open %s\n", fname); exit(0);}
int n = fread(buf, 1, 0x100000, fp);
fclose(fp);
return n;
}
char buf[2][0x10000];
int main(int argc, char *argv[]) {
long n = readFile(argv[1], &buf[0][0]);
unsigned int *pInt = (unsigned int*) (&buf[0][0]);
printf("n=%d %08x\n", n, *pInt);
long m = 0x10000;
int rc = uncompress(&buf[1][0], &m, &buf[0][0], n);
printf("rc = %d %s\n", rc, &buf[1][0]);
return 0;
}
出现错误:
./a.out te.html.gz
n=169 08088b1f
rc = -3
te.html.gz 是通过运行 `gzip te.html' 获得的。
谢谢!
【问题讨论】: