我必须执行一个路径未知的命令。我可以到达环境路径,但是我如何使用它们呢?例如,如果有5个不同的路径,我应该在execv中尝试哪一个?
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
在解析数组中的这些路径之后,我如何使用它们?我应该为他们每个人尝试execv吗?
发布于 2012-11-22 16:29:04
您可以只使用execvp,它会在正在执行的外壳的PATH中搜索二进制文件(请参阅http://linux.about.com/library/cmd/blcmdl3_execv.htm)。
如果这不是一个选项,您可能应该像execvp / shell所做的那样:查看一个接一个的路径(从左到右),并检查其中是否存在具有给定名称的可执行文件。
https://stackoverflow.com/questions/13508473
复制相似问题