elixir - 查找 Elixir/Erlang 内存文件的长度?

标签 elixir erlang-otp

在 Elixir(或 Erlang)中,如果我有一个内存文件,我如何找到它的长度(以字节为单位)?

{:ok, fd} = :file.open("", [:ram, :read, :write])
:file.write(fd, "hello")

最佳答案

不确定是否有更好的方法,但这就是我所做的:

def get_length(fd) do
  {:ok, cur} = :file.position(fd, {:cur, 0})
  try do
    :file.position(fd, {:eof, 0})
  after
    :file.position(fd, cur)
  end
end

用法:
{:ok, fd} = :file.open("", [:ram, :read, :write])
:ok = :file.write(fd, "hello")
{:ok, len} = get_length(fd)

关于elixir - 查找 Elixir/Erlang 内存文件的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43770144/

相关文章:

erlang - 使用未注册、动态创建的 gen_server 的示例?

erlang - 我应该为此使用什么 OTP 行为?

Erlang Application start/2 不会执行

compilation - Elixir或Erlang程序可以编译为独立的二进制文件吗?

elixir - 与 Ecto 执行联合

ssl - 使用 Elixir 和 Erlang ssl 模块获取 SSL 证书

erlang - 模式匹配 Elixir 记录 Aganist 结构

elixir - Phoenix 混合任务上的 HTTPoison ArgumentError

erlang - 主管启动后启动动态 simple_one_for_one worker

architecture - 在 OTP/Erlang 中将 ID 映射到进程的惯用方式是什么?