gpt4 book ai didi

unix - 从 OCaml 内部调用外部程序

转载 作者:行者123 更新时间:2023-12-04 13:10:08 24 4
gpt4 key购买 nike

我对 OCaml 很陌生,并试图弄清楚如何从 OCaml 内部调用外部程序。

我一直在关注文档 here ,并进行以下调用:

Unix.execv "cat text_file";;

这将返回以下内容:
string array -> 'a = <fun>

我究竟如何访问返回的匿名函数?
cat text_file是打印文件内容的简单尝试,我实际想要运行的命令有点复杂。但是,我认为如果我可以运行它,我应该能够运行我真正的程序。

最佳答案

execv 的第一个参数是您要运行的程序,第二个是包含参数的数组。另外,execv需要程序的完整路径;您可以使用 execvp在执行路径中查找程序。此外,程序的第一个参数是程序本身的名称。
所以你想要"/bin/cat"作为第一个参数,不是 "cat text_file" , 和 [| "cat"; "text_file" |]作为第二个参数(或调用 execvp 并传递 "cat" 作为第一个参数)。

然而,通常情况下,您实际上想要 system ,不是 execv .

请注意 system允许您根据需要传递单个字符串,并且 execv (与 system 不同)永远不会返回,即一旦您调用 execv您的程序已完成,您调用的应用程序将接管该过程。

关于unix - 从 OCaml 内部调用外部程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4350361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com