我试图在谷歌搜索,但并不真正理解execv
,execve
,execlp
之间的区别。
如果有人可以帮助我,我将不胜感激。
谢谢
答案 0 :(得分:3)
http://linux.die.net/man/3/execlp
使用execve(),您可以使用env参数为新过程映像指定环境。 env参数是传递给execve()调用的最后一个参数。 execv()调用不能指定env参数。最后,使用execclp,指定文件名而不是路径,PATH环境变量用于搜索可执行文件。
答案 1 :(得分:2)
在这3个函数中execv
是最简单的函数:它在向量中包含所有参数,但是必须为可执行文件提供完全路径。
现在,execve
增加了访问系统环境的可能性:那里定义的变量。例如,如果您使用MY_VAR=42
定义execve
,则使用getenv
在代码中可以看到此定义。
最后,execlp
允许您仅提供可执行文件的名称,并将在PATH
变量中进行搜索。