不同的Erlang进程可以有独立的工作目录吗?

时间:2018-10-20 09:46:31

标签: erlang elixir working-directory

任何流程修改cwd是全局的:

iex(1)> File.cwd
{:ok, "/home/hentioe"}
iex(2)> spawn fn -> File.cd("/home")  end
#PID<0.105.0>
iex(3)> File.cwd                         
{:ok, "/home"}

有没有办法隔离进程之间的当前工作目录(cwd)?

1 个答案:

答案 0 :(得分:6)

ErlangVM中有一个文件服务器的概念,原始:file.set_cwd/1File.cwd/1的委托人)被明确设置为文件服务器的工作目录。

不同节点上的文件服务器总是有所不同,也有几种功能可能会绕过文件服务器(“文件服务器”的grep :file文档。)

目前还不清楚为什么您需要另一个当前目录来进行不同的处理,而且闻起来都像是XY problem,但是对您问题的一般回答是:

→不,同一节点上的所有进程都使用同一文件服务器,因此跨进程具有相同的工作目录。