【问题标题】:execv unknown path usageexecv 未知路径使用
【发布时间】:2012-11-22 08:23:42
【问题描述】:

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

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

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

【问题讨论】:

  • 全部?将它们分开,附加程序名称并调用execv。如果您收到错误,请重复下一条路径。

标签: c unix exec


【解决方案1】:

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

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

【讨论】:

  • 我知道,我听说了,但我必须使用 execv,它是一个虚拟的学校项目
  • @user1471821 iirc execvp() 基本上尝试在其中找到二进制文件,然后在 execv()s 中找到它 - 检查例如glibc 代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 2021-01-10
  • 2019-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多