C - execv 未知路径用法



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

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

usr/bin:/sbin:/bin:/usr/games

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

你可以只使用 execvp ,它在执行 shell 的PATH中搜索二进制文件(参见 http://linux.about.com/library/cmd/blcmdl3_execv.htm)。

如果这不是一个选项,你可能应该做与execvp/shell相同的操作:查看一个又一个路径(从左到右),并检查其中是否有具有给定名称的可执行文件。

最新更新