当前位置: 首页 > 知识库问答 >
问题:

zlib写入原始编码流

屈昊天
2023-03-14

我试图写一个通用函数,将写一个未压缩和压缩文件(取决于用户输入)。根据zlib,您只需将gzopen模式设置为“w0”(无压缩),但我仍然得到zlib头!

在ZLIB手册中,它提到可以写入原始数据(没有头/尾),但没有说明如何写入。我如何用zlib编写一个普通的(原始编码的)文件?

共有1个答案

邹京
2023-03-14

使用透明模式“T”打开文件:

#include <zlib.h>

int main()
{
  gzFile file = gzopen("/tmp/a.dat", "wT");
  (void) gzwrite(file, "test", 4);
  (void) gzclose(file);
}
 类似资料:
  • 要再次编码,解码数据将再次转换为,然后转换为编码的字符串。但是与不匹配。请帮助我创建一个完美无瑕的编码解码到重新编码流。 详细说明,如果这样执行,重新编码与初始编码完全匹配。 但是,我的是从数据库中提取的,如下所示,在这种情况下,重新编码不匹配。 这2看起来相似的方式,但我的程序似乎正在产生一个损坏的版本,实际的base64解码字符串应该是什么。

  • 大小范围在2.5MB-20MB之间。这个问题在较长的剪辑上变得更糟,例如7分钟的范围是9MB-120MB。 正常吗? 我试图捕捉同样的场景,但还是得到了不同的结果。

  • 我已经设法使用libav*和directX纹理创建了一个rtsp流(我正在使用Bitblit方法从GDI API中获取该纹理)。下面是我创建实时rtsp流的方法: > 创建输出上下文和流(跳过此处的检查) AVFORMAT_ALLOC_OUTPUT_CONTEXT2(&OFMT_CTX,NULL,“RTSP”,rtsp_url);//RTSP vid_codec=avcodec_find_enco

  • 我最近在我的代码库中发现了这个宝石: 其用途如下: 线程1 线程2 线程1是一个持续运行的后台更新线程。线程2是一个HTTP工作线程,它不关心它读取的内容是否以任何方式一致或原子,只关心写入“最终”到达那里,并且不会作为并发神的供品丢失。 现在,这触发了我所有的警告。自定义并发算法写在不相关代码的深处。 不幸的是,修复代码并非易事。对并发原始矩阵的Java支持并不好。解决这个问题的最明确方法似乎是

  • 问题内容: 我知道供应商有自己的原始SQL语言子集,这些子集用C(类似于Postgre SQL)或MS-SQL Server(C ++)等编写。 那么,原始的SQL是用C编写的,还是在Assembly中创建的呢?我真的找不到关于其原始语言根源的明确答案(除了历史等) 问题答案: 在Oracle上进行的快速历史搜索得出: 在70年代后期,Ingres刚开始在加州大学伯克利分校工作时,三个从事CIA合

  • 问题内容: 因此,我有两个来自javascript.info的示例: 范例1: 范例2: 从示例2开始:当代码到达时,它在中找不到任何属性,因此它爬升到原型并在那里进行了更改。这就是为什么两只仓鼠都相等的原因,换句话说,它们的肚子也一样。 据此我了解,当编写并添加一个不存在的新属性时,解释器将沿着原型链向上移动,直到找到该属性,然后再进行更改。 但是在示例1中,发生了其他事情: 我们运行,它发生了