是否有类似于 UNIX 中“whereis”命令的 API 可以从 C 程序中调用以找出给定命令的所有实例?
karthik
问问题
337 次
2 回答
2
用于getenv("PATH")
获取 - 分隔的':'
目录名称列表。在每个目录中查找命令名称(例如使用stat()
or access()
)并检查它是否是常规文件并且可以执行。(如果目录名称为空,则假设"."
。)这正是which
andwhereis
命令的作用。
execvp()
and函数在execlp()
执行给定命令时会自动进行 PATH 查找,尽管它们似乎没有手动检查每个路径,而只是调用execv()
; 如果返回错误代码,他们只会尝试下一条路径。
于 2013-09-29T01:00:22.687 回答
0
C 中有许多不同的函数可以用来从程序中启动 shell 命令。我认为您应该特别关注 exec(3) 系列。
您可能需要的每个示例都在手册中:man 3 exec
在终端中或此处: http: //linux.die.net/man/3/exec。
希望这可以帮助!
于 2013-09-29T00:09:31.717 回答