Erlang VMの入出力は、I/Oサーバーを用いて行われる Elixirでは、開いたファイル、デバイスは、I/OサーバーのPIDで識別する
1.8.0-dev
の IO.puts
デフォルトのデバイス: :stdio
def puts(device \\ :stdio, item) do
:io.put_chars(map_dev(device), [to_chardata(item), ?\n])
end
ノード one
goh@goh% iex --sname one
Erlang/OTP 21 [erts-10.0.7] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] [dtrace]
Interactive Elixir (1.7.3) - press Ctrl+C to exit (type h() ENTER for help)
iex(one@goh)1> two = :global.whereis_name :two
#PID<10631.69.0>
iex(one@goh)2> IO.puts(two, "Hello")
:ok
iex(one@goh)3> IO.puts(two, "World!")
:ok
ノード two
goh@goh% iex --sname two
Erlang/OTP 21 [erts-10.0.7] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] [dtrace]
Interactive Elixir (1.7.3) - press Ctrl+C to exit (type h() ENTER for help)
iex(two@goh)1> Node.connect(:one@goh)
true
iex(two@goh)2> :global.register_name(:two, :erlang.group_leader)
:yes
Hello
World!