5. Erl_Interface
5 Erl_Interface
This section outlines an example of how to solve the example problem in Problem Example
by using a port and Erl_Interface. It is necessary to read the port example in Ports
before reading this section.
5.1 Erlang Program
The following example shows an Erlang program communicating with a C program over a plain port with home made encoding:
-module(complex1). -export([start/1, stop/0, init/1]). -export([foo/1, bar/1]). start(ExtPrg) -> spawn(?MODULE, init, [ExtPrg]). stop() -> complex ! stop. foo(X) -> call_port({foo, X}). bar(Y) -> call_port({bar, Y}). call_port(Msg) -> complex ! {call, self(), Msg}, receive {complex, Result} -> Result end. init(ExtPrg) -> register(complex, self()),