鉴于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”作为参数,所以也许我只需要转换它?
答案 0 :(得分:13)
打开zlib端口后,您需要在调用inflateInit
之前调用inflate
:
z = :zlib.open()
:zlib.inflateInit(z)
uncompressed = :zlib.inflate(z, compressed)
:zlib.close(z)