在输出中使用os:cmd和EOT符号

时间:2011-12-07 08:01:16

标签: erlang cmd

使用我的外部程序,我创建了一个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字节。

1 个答案:

答案 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")