Erlang / Erlang Basics Interview questions
What are ports in Erlang?
A port is Erlang's built-in mechanism for talking to an external OS process or native code, treated from the Erlang side just like another process you can send messages to and receive messages from. It's the standard, safe way to shell out to a C program, a script, or any external executable.
Port = open_port({spawn, "sort"}, [binary]), Port ! {self(), {command, <<"banana\napple\n">>}}.
Communication happens over the external program's standard input/output, with Erlang handling the byte framing. Crucially, if the external program crashes, only the port dies — it cannot corrupt or crash the BEAM itself, which is what makes ports a safer integration point than loading foreign code directly in-process.
More Related questions...