diff --git a/lib/trinity/sim_file.ex b/lib/trinity/sim_file.ex index 310a427..301b3b5 100644 --- a/lib/trinity/sim_file.ex +++ b/lib/trinity/sim_file.ex @@ -21,6 +21,14 @@ defmodule Trinity.SimFile do end end + @spec close(file_descriptor) :: :ok | {:error, posix | :badarg | :terminated} + def close(fd) do + case get_sim() do + nil -> File.close(fd) + _sim -> sim_close(fd) + end + end + @spec pread(file_descriptor, non_neg_integer, non_neg_integer) :: {:ok, binary} | :eof | {:error, posix} def pread(fd, loc, bytes) do case get_sim() do @@ -78,6 +86,10 @@ defmodule Trinity.SimFile do end end + defp sim_close(_fd) do + :ok + end + defp get_or_create_fd(file_paths, node, path) do case get_path(file_paths, node, path) do fd when is_integer(fd) -> {:ok, fd}