Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过zlib和compress2在C中编写gz文件_C_Io_Compression_Zlib - Fatal编程技术网

如何通过zlib和compress2在C中编写gz文件

如何通过zlib和compress2在C中编写gz文件,c,io,compression,zlib,C,Io,Compression,Zlib,我正在使用zlib编写一个程序,将数据压缩到多个线程中。所以我不能用gzwrite。我正在使用compress2() 但当我试图通过gzip-d解压文件时,我看到了下一个输出:“不是gzip格式”。我做错了什么?感谢您的回答compress()和compress2()压缩到,而不是压缩到。您需要使用较低级别的函数才能选择gzip格式。它们是deflateInit2(),deflate()和deflateEnd()。请阅读中有关这些函数的文档。在这之后,您还应该看看。您是在不同线程中压缩一个文件吗

我正在使用zlib编写一个程序,将数据压缩到多个线程中。所以我不能用gzwrite。我正在使用compress2()


但当我试图通过gzip-d解压文件时,我看到了下一个输出:“不是gzip格式”。我做错了什么?感谢您的回答

compress()
compress2()
压缩到,而不是压缩到。您需要使用较低级别的函数才能选择gzip格式。它们是
deflateInit2()
deflate()
deflateEnd()
。请阅读中有关这些函数的文档。在这之后,您还应该看看。

您是在不同线程中压缩一个文件吗?@AnishRam,实际上我压缩的不是文件,而是传入的缓冲区。这有点像日志记录系统。是的,我把它压缩成不同的线程
*dest_len = compressBound(LOG_BUFF_SZ);
err = compress2((Bytef*)compressed_buff->buff, dest_len, (Bytef*)b->buff, size, GZ_INT_COMPRESSION_LEVEL);
write(fd, compressed_buff->buff, compressed_buff->full);