POSIX函数搜索PATH的可执行文件?

Ric*_*sen 9 c unix posix path

是否有POSIX函数PATH根据POSIX规范对PATH环境变量的描述搜索可执行文件并返回可执行文件的绝对路径?

如果没有,是否有简单,安全,标准和可靠的搜索方式PATH

编辑: glibc的execvpe()函数有自己的PATH搜索,所以我猜测PATH标准没有定义特定的搜索功能.

编辑2: 我不想复制别人的代码或PATH自己实现搜索,原因如下:

  • 我需要测试和维护更多代码
  • 可能的许可问题
  • POSIX说,"如果PATH未设置或设置为null,则路径搜索是实现定义的." 我希望这些情况下的行为与系统的行为一致,但如果没有我可以调用的标准函数,我就不能这样做.

Fre*_*Foo 8

是否有POSIX函数根据POSIX规范对PATH环境变量的描述在PATH中搜索可执行文件,并返回可执行文件的绝对路径?

没有.

如果没有,是否有一种简单,安全,标准和可靠的方式来搜索PATH?

是的,不是.是的,有一个标准的格式PATH,实现的正确性/可靠性遵循.

不,没有标准功能可以做到这一点.复制代码是您最好的选择.

如果PATH未设置或设置为null,则路径搜索是实现定义的.

这意味着你不能总是可移植复制什么execvp呢,但是搜索/bin:/usr/bin是一个非常安全的赌注.或者,只是在这种情况下引发错误.

(我承认如果POSIX有这个功能会很好,但它不存在.)