execv未知路径使用

execv未知路径使用,c,unix,exec,C,Unix,Exec,我必须执行一个路径未知的命令。我可以访问环境路径,但如何使用它们?例如,如果有5条不同的路径,我应该在execv中尝试哪一条 /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/usr/bin:/sbin:/usr/games 在数组中解析这些路径后,如何使用它们?我应该为它们中的每一个尝试execv吗?您可以使用execvp,它在执行shell的路径中搜索二进制文件(请参阅) 如果这

我必须执行一个路径未知的命令。我可以访问环境路径,但如何使用它们?例如,如果有5条不同的路径,我应该在execv中尝试哪一条

/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/usr/bin:/sbin:/usr/games


在数组中解析这些路径后,如何使用它们?我应该为它们中的每一个尝试execv吗?

您可以使用
execvp
,它在执行shell的
路径中搜索二进制文件(请参阅)


如果这不是一个选项,您可能应该像shell那样做:查看一个接一个的路径(从左到右),检查其中是否有具有给定名称的可执行文件。

我知道,我听到了,但我必须使用execv,它是一个虚拟学校project@user1471821iirc
execvp()
基本上是尝试在中查找二进制文件,然后
execv()
s it-检查例如glibc代码。所有这些?将它们分开,附加程序名并调用
execv
。如果出现错误,请重复下一条路径。