使用我的外部程序,我创建了一个PDF文件,并尝试传递给erlang程序。但PDF包含EOT符号。当达到第一个EOT时,传输停止。
我如何传递整个文件?
在sarnold之后添加,
os:cmd(io_lib:format("LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib;
export LD_LIBRARY_PATH; /home/yola/progra/cpp/pdf/a.out ~s", ["Hello"]))
这不会返回整个生成的文件。在2305 pos和erlang遇到的第一个EOT符号有2304个符号,但文件长度为64xxx字节。
答案 0 :(得分:1)
os:cmd
函数使用EOT知道何时停止从外部程序读取;见os.erl。因此,您必须以其他方式执行此操作,例如将输出重定向到文件:
os:cmd(io_lib:format("LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib;
export LD_LIBRARY_PATH; /home/yola/progra/cpp/pdf/a.out ~s > my.pdf", ["Hello"])),
{ok, MyPDF} = file:read_file("my.pdf")