【发布时间】:2012-06-15 21:42:00
【问题描述】:
是否有 POSIX 函数根据POSIX spec's description of the PATH environment variable 搜索PATH 的可执行文件并返回可执行文件的绝对路径?
如果没有,是否有一种简单、安全、标准、可靠的方式来搜索PATH?
编辑:
glibc's execvpe() function 有自己的 PATH 搜索,所以我猜该标准没有定义特定的 PATH 搜索功能。
编辑 2:我不想复制别人的代码或自己实现 PATH 搜索,原因如下:
- DRY
- 我必须测试和维护更多代码
- 可能的许可问题
- POSIX 说,“如果
PATH未设置或设置为 null,则路径搜索是实现定义的。”我希望这些情况下的行为与系统所做的一切保持一致,但如果没有我可以调用的标准函数,我就无法做到这一点。
【问题讨论】:
-
execvp和execlp是 POSIX 标准函数。您是否正在寻找仅 搜索$PATH的函数? -
@larsmans:是的,并返回一个包含可执行文件完整路径的字符串(如果找到)