私はstdinから読み込んで結果を生成する外部exeプログラムを持っています。これはwc
プログラムのように機能し、EOFまで読み取ります。 (またはストリームの終わりではなく)Erlangポート: "wc"のようなプログラムとのインターフェース?
更新:私は基本的にErlangパイプを書くことを試みています。
echo 339371249625 | LookupProj.exe
のようなバッチファイルでプログラムを呼び出すことができますが、Erlang gen_server
からデータを渡すことができます。
私はErlang港を見ましたが、私は彼らがいい遊びをするのに問題があります。ここで私が持っているものです。
test(InputText) ->
P = open_port({spawn, "/ExternEvent/LookupProj.exe"}, [stream, exit_status, use_stdio,
stderr_to_stdout, in, out]),
IBin = list_to_binary(InputText),
%% io:format("~p~n",[I2]),
P ! {self(), {command, <<IBin/binary, <<26>>/binary>>}}, %% ASCII 26 = EOF
P ! {self(), {eof}}, %% ERROR -- how to close stdin of the cat process?
receive B -> io:format("~p",[B]) end.
ノー助けにopen_port
でeof
フラグを使用してみました。 (これが正しいフラグであるかどうか分かりません)
どこが間違っていましたか?ありがとう!