是否有像which
命令一样工作的 POSIX 函数?也就是说,我将一个命令名称传递给它,它会查找$PATH
具有该名称的可执行文件,并返回该命令的绝对路径(如果有)。
更长的解释:我的 POSIX-C 应用程序想要启动一个子进程,其进程可能被调用foo
或bar
. 我的第一个想法是(忽略我需要孩子的stdin/stdout/stderr
):
system("which foo && foo || which bar && bar");
我不喜欢这种通用方法,因为这会将有关进程调用的所有错误推入子进程的退出代码和stdout/stderr
(我需要在我的应用程序中作为二进制流!)。
所以看起来我需要which
在我的应用程序代码中复制 的行为,以找到foo
或bar
可执行文件。是否有合适的 POSIX 函数,或者您是否有代码片段?