不同的Erlang进程可以有独立的工作目录吗?
Can different Erlang processes have independent working directories?
任何进程修改 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
)?
ErlangVM中有一个文件服务器的概念,原来的:file.set_cwd/1
, File.cwd/1
委托,是明确设置文件服务器的工作目录。
不同节点上的文件服务器总是不同的,也有几个函数可以调用来绕过文件服务器(grep :file
“文件服务器”的文档。)
不清楚为什么不同的进程需要另一个当前目录,而且它闻起来像 XY problem,但您问题的一般答案是:
→ 不,同一节点上的所有进程都使用相同的文件服务器,因此跨进程具有相同的工作目录。
任何进程修改 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
)?
ErlangVM中有一个文件服务器的概念,原来的:file.set_cwd/1
, File.cwd/1
委托,是明确设置文件服务器的工作目录。
不同节点上的文件服务器总是不同的,也有几个函数可以调用来绕过文件服务器(grep :file
“文件服务器”的文档。)
不清楚为什么不同的进程需要另一个当前目录,而且它闻起来像 XY problem,但您问题的一般答案是:
→ 不,同一节点上的所有进程都使用相同的文件服务器,因此跨进程具有相同的工作目录。