今日の記録 2020/6/23

勉強した

プログラミング Erlang - P171 ~ P177

実装の続き。前回の stdio が見つからないというエラーは brew で入れた gcc を使うことで対応できた。
 次に以下のように Erlang 側で走らせようとすると、start() は上手くいくのだが、sum の実行をすると何の結果も返ってこないという問題にぶつかった。

2> example1:start().
<0.84.0>
3> example1:sum(45, 32).

何か実装が間違えているのかと思い各関数を見なおしたところ、example1_driver.c の if 文の後にあった以下のプログラムが抜けていただけだった。

buff[0] = result;
write_cmd(buff, 1);

 example1によって、Erlangから実行ファイルに対して、通常の Erlang プロセスと同様に(共通言語としてのバイトコードを利用する必要はあるが)メッセージを送ることができることが分かった。これとローカル外とのプロセス間通信があれば、アイディアさえあればなんでも作れそうだ。

この記事が気に入ったらサポートをしてみませんか?