将输出重定向到压缩格式(C)

时间:2012-02-06 06:36:03

标签: c printf data-compression

是否可以以将数据写入压缩文件的方式使用fprintf? 例如:

fopen ("myfile.txt","w");

将写入纯文本文件。因此文件大小变得非常大。

3 个答案:

答案 0 :(得分:5)

您可以使用zlib将数据写入压缩流。

gzFile fp;
fp = gzopen(NAME, "wb");
gzprintf(fp, "Hello, %s!\n", "world");
gzclose(fp);

像这样编译:

gcc -Wall -Wextra -o zprog zprog.c -lz

使用zcat打印文件内容。

答案 1 :(得分:3)

如果您使用的是具有管道的系统,那么微创解决方案就是打开到外部gzip进程的管道。这样你就可以使用所有正常的stdio输出函数,而不必用zlib调用替换所有东西。

答案 2 :(得分:1)

在Linux上,您可以使用zlib库(并将其链接为-lz)并使用其compressed streams