Ocaml 查找可执行文件的路径

Ocaml 查找可执行文件的路径,ocaml,Ocaml,如何根据path环境变量(例如基于/bin/sh的环境变量)找到可执行文件的绝对路径 换句话说,是否存在返回“/usr/bin/cal”的函数,例如程序路径“cal” 提出此问题的原因是:OCaml库中的某些函数(例如,Unix.execvp)只能使用程序名(函数将自行搜索程序)。我想知道用户是否可以使用此搜索功能。您可以使用该库,它实现了符合POSIX标准的文件实用程序,包括您正在寻找的实用程序。例如 # #use "topfind";; # #require "fileutils";; #

如何根据path环境变量(例如基于
/bin/sh
的环境变量)找到可执行文件的绝对路径

换句话说,是否存在返回
“/usr/bin/cal”
的函数,例如
程序路径“cal”

提出此问题的原因是:OCaml库中的某些函数(例如,
Unix.execvp
)只能使用程序名(函数将自行搜索程序)。我想知道用户是否可以使用此搜索功能。

您可以使用该库,它实现了符合POSIX标准的文件实用程序,包括您正在寻找的
实用程序。例如

# #use "topfind";;
# #require "fileutils";;
# FileUtil.which "cal";;
- : FilePath.filename = "/usr/bin/cal"

Unix.execvp
只是调用,我认为甚至没有POSIX函数允许您搜索路径。不过,您也许可以调用
which
命令。请参阅在Unix上,我认为您可以尝试使用“system”并尝试使用system对“What”的实现,在eNote上进行匹配,在这种情况下,您必须使用“getenv”的“PATH”并搜索逗号分隔的文件夹,然后使用第一个文件夹(即您自己的“What”实现)。我认为任何第三个函数都必须在Unix模块的基础上实现它,您可能对此感兴趣。