我正在编写一个从输入流中读取的程序,即
erl -run p main -noshell -s erlang halt < input
Run Code Online (Sandbox Code Playgroud)
问题是使用这个读取函数需要花费大量时间来读取它(输入流很大):
read_input(L) ->
case io:get_line("") of
eof ->
lists:reverse(L);
E0 ->
read_input([E0|L])
end.
Run Code Online (Sandbox Code Playgroud)
我一直在寻找更有效的替代方案,但我一无所获.我试过用它来读取文件
{ok, Binary} = file:read_file("input")
Run Code Online (Sandbox Code Playgroud)
这远远高效得多.问题是我必须在名称未知的平台上运行此程序,所以我需要一些替代方法来执行此操作.另外,我无法选择运行时使用的标志,例如,标志-noinput无法添加到命令行.
无论您给予什么帮助,都会受到欢迎.