execv和execve之间的区别

时间:2013-11-17 14:59:03

标签: c linux exec

我试图在谷歌搜索,但并不真正理解execvexecveexeclp之间的区别。

如果有人可以帮助我,我将不胜感激。

谢谢

2 个答案:

答案 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变量中进行搜索。