【问题标题】:Can different Erlang processes have independent working directories?不同的 Erlang 进程可以有独立的工作目录吗?
【发布时间】:2018-10-20 18:43:26
【问题描述】:

任何进程修改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)?

【问题讨论】:

    标签: erlang elixir working-directory


    【解决方案1】:

    在ErlangVM中有一个文件服务器的概念,原来的:file.set_cwd/1File.cwd/1委托给,是明确用来设置文件服务器的工作目录的。

    不同节点上的文件服务器总是不同的,也有可能调用几个函数来绕过文件服务器(grep :file“文件服务器”文档。)

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

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

    【讨论】:

      猜你喜欢
      • 2015-10-29
      • 2010-12-20
      • 2011-01-24
      • 2011-04-15
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      • 2017-08-11
      相关资源
      最近更新 更多