如何在 Erlang 的内存中创建 tar 文件

问题描述 投票:0回答:1

我正在尝试编写一个 Erlang 函数,该函数接受二进制文件列表并将它们打包成一个二进制文件。 查看标准库中的

erl_tar
,似乎
create
函数只接受文件名,而不是二进制文件,所以我的计划是使用
open
add
来实现该功能。 不幸的是,我似乎也无法让
open
功能正常工作。

我尝试打开二进制文件进行写入的最小示例:

case erl_tar:open({binary, <<>>}, [write, compressed]) of
     {ok, _Td} -> io:put_chars("Opened binary")
end.

导致运行时错误:

runtime error: Erlang error

No Erlang function clause matched the arguments it was called with.

stacktrace:
  erl_tar.open1 erl_tar.erl:579

查看erl_tar的文档,我认为这可能是一个错误?我不完全是一个爱兰格。

我会提出一个问题,但与此同时,如果有人知道如何在 erlang 中将 tarfile 打包到内存中,它就会解锁我。

erlang tar
1个回答
0
投票

不要使用

create
函数,使用较低级别的接口:
init
函数允许您指定应如何处理数据。该文档包含一个示例,展示如何使用
init
写入文件,调整它以便您构建一个二进制文件。然后使用
add
将文件添加到存档,然后使用
close
完成。

© www.soinside.com 2019 - 2024. All rights reserved.