Могут ли разные процессы Эрланга иметь независимые рабочие каталоги? - PullRequest
0 голосов
/ 20 октября 2018

Любое изменение процесса 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 голосов
/ 20 октября 2018

В ErlangVM существует концепция файлового сервера, и исходные делегаты :file.set_cwd/1, File.cwd/1 явно заданы для установки рабочего каталога файлового сервера.

Файловый сервер на другом узле всегда отличается, также есть несколько функций, которые можно вызвать для обхода файлового сервера (grep :file документация для «файлового сервера».)

Неясно, почемувам нужен другой текущий каталог для другого процесса, и все это пахнет как XY проблема , но общий ответ на ваш вопрос будет выглядеть так:

→ нет, все процессы одинаковыузлы используют один и тот же файловый сервер и, следовательно, имеют один и тот же рабочий каталог для всех процессов.

...