微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在二进制无符号字符上使用zpipe膨胀

如何解决如何在二进制无符号字符上使用zpipe膨胀

我有一个要压缩zpipe的压缩和base64编码的字符串。

我完成了教程here效果很好。我b64首先将字符串解码,将其保存到文件中,然后使用inf()函数对其进行解压缩。

int ret;
char *b64_string = (char *)read_b64_string();
size_t my_string_len;
unsigned char *my_string = b64_decode_ex(my_string,strlen(my_string),&my_string_len);
free(b64_string);

write_decoded_b64_to_file(my_string,my_string_len);
free(my_string);

ret = inf();

然后将inf()函数更改为硬编码文件

int inf()
{
    FILE *source;
    FILE *dest;
    source = fopen("/path/to/my/b64decoded_file/","r");
    dest = fopen("/path/to/my/decompressed_file/","w");

现在,我想更改inf()函数以使其在二进制文件作为参数传递时起作用。

int ret;
size_t my_string_len;
unsigned char *my_string = b64_decode_ex(my_string,&my_string_len);
ret = inf(my_string);

我想我已经确定了这一行

strm.avail_in = fread(in,1,CHUNK,source);

是我必须读二进制文件的那个。 fread仅适用于文件。如何在没有文件的情况下读取该二进制文件

解决方法

只需使用fmemopen()作为文件打开my_string

source = fmemopen(my_string,my_string_len,"rb");

(我习惯养成b中的"rb"。从不痛苦。可以提供帮助。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。