我正在尝试使用Lwt_process.pread_lines获取一些命令的输出。 在我的Lwt_main.run中,我调用它一次,然后通过Lwt_stream.map开始分别处理输出的每一行,效果很好。
尽管在该处理中,如果我调用另一个Lwt_process.pread_lines,它似乎被忽略了:
Lwt_process.pread_line cmd
>>= Printf.printf "blah %s\n"
我不生气,我什至没有例外。我尝试过pread_line和pread_lines,而>> =之后的任何内容都将被忽略。如果我使用|>,尽管它会被调用,但是当然我实际上需要使用输出。
我已经阅读了文档,并查看了Lwt_process的源代码,但是我没有看到任何表明您无法多次调用它的方法,它似乎为每个过程,至少在输出上。当然,我的外部进程根本不使用stdin,这只是对df命令的调用。 我想念什么吗?
我应该清楚:它不会挂起,程序确实可以正常运行。只是永远不会调用任何试图使用后续命令结果的东西,第一个可以正常工作。
谢谢