有没有 POSIX 函数可以搜索PATH
对于可执行文件,根据POSIX 规范的描述PATH环境变量 http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03并返回可执行文件的绝对路径?
如果没有,有没有一种简单、安全、标准、可靠的搜索方式PATH
?
Edit:
glibc's execvpe()功能 http://sourceware.org/git/?p=glibc.git;a=blob;f=posix/execvpe.c做自己的PATH
搜索了一下,估计没有具体的PATH
标准定义的搜索功能。
Edit 2:我不想复制别人的代码或实现PATH
自我找了几个原因:
- DRY https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
- 我需要测试和维护更多代码
- 可能的许可问题
- POSIX 说:“如果
PATH
未设置或设置为 null,路径搜索是实现定义的。”我希望这些情况下的行为与系统所做的任何事情保持一致,但如果没有可以调用的标准函数,我就无法执行此操作。
是否有一个 POSIX 函数可以根据 POSIX 规范对 PATH 环境变量的描述在 PATH 中搜索可执行文件并返回可执行文件的绝对路径?
No.
如果没有,有没有一种简单、安全、标准、可靠的方式来搜索PATH?
是的,也不是。是的,有一个格式标准PATH
,由此得出实现的正确性/可靠性。
不,没有标准函数可以执行此操作。复制代码是最好的选择。
If PATH
未设置或设置为 null,则路径搜索是实现定义的。
这意味着你不能总是portably复制什么execvp
确实如此,但正在寻找/bin:/usr/bin
是一个非常安全的选择。或者,在这种情况下只提出错误。
(我承认如果 POSIX 有这个功能就好了,但它就是不存在。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)