エリクシル(またはErlang)では、メモリ内のファイルがある場合、その長さをバイト数でどのように見つけるか?Elixir/Erlangのメモリ内ファイルの長さを見つけますか?
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)
これは非常にきれいですが、 'ことに注意してください:ram_file'モジュールが正式OTPに文書化されていないので、いつでも/取り外しを変更することがあります。 – jwfearn