外部プログラム (Matlab スクリプト) が完了したことを Erlang プロセスに通知しようとしています。これを行うためにバッチ ファイルを使用しており、Erlang プロセスに完了を通知するコマンドを入力したいと考えています。メインコードは次のとおりです。
myerlangprogram.erl では:
runmatlab() ->
receive
updatemodel->
os:cmd("matlabscript.bat"),
...
end.
matlabscript.bat で:
matlab -nosplash -nodesktop -r "addpath('C:/mypath/'); mymatlabscript; %quit;"
%% I would like to notify erlang of completion here....
exit
ご覧のとおり、'os:cmd' erlang 関数を使用して matlab スクリプトを呼び出しています。
これが最善のアプローチかどうかはわかりません。ポート (http://www.erlang.org/doc/reference_manual/ports.html) の使用を検討していますが、ポートがオペレーティング システムとどのように/どこで対話するかを理解するのに苦労しています。
要約すると、私の 2 つの質問は次のとおりです。 1. コマンド ラインから Erlang プロセスにメッセージを送信する最も簡単な方法は何ですか? 2. erlang ポートはどこで、どのようにオペレーティング システムとの間でデータを送受信しますか?
これに関するアドバイスをいただければ幸いです。
ちなみにOSはwindows7です。