如何在Elixir中为Zlib扩充字节列表?

时间:2015-10-09 12:54:38

标签: zlib elixir

鉴于Elixir中的二进制代表一个压缩文件,如何将它们传递给Erlang的zlib以进行膨胀?

compressed = <<120, 218, 237, 125, 123, 115, 28, 71, 126, ...>>

我试过了:

z = :zlib.open()
uncompressed = :zlib.inflate(z, compressed)
:zlib.close(z)

返回的错误是:

** (ErlangError) erlang error: :einval
               :zlib.call/3     
               :zlib.inflate/2

期待一个“iodata”作为参数,所以也许我只需要转换它?

1 个答案:

答案 0 :(得分:13)

打开zlib端口后,您需要在调用inflateInit之前调用inflate

z = :zlib.open()
:zlib.inflateInit(z)
uncompressed = :zlib.inflate(z, compressed)
:zlib.close(z)