我曾尝试在谷歌上搜索,但并没有真正理解execv
、execve
和execlp
之间的区别。
如果有人能帮助我,我将不胜感激。
谢谢。
http://linux.die.net/man/3/execlp
使用execve()函数,您可以通过env参数指定新进程映像的环境。env参数是传递给execve()调用的最后一个参数。execv()调用无法指定env参数。最后,使用execclp,您可以指定文件名而不是路径,并使用PATH环境变量搜索可执行文件。
execv
是最简单的一个:它将所有参数放在一个向量中,但是你必须给出可执行文件的完整路径。execve
添加了访问系统环境变量的可能性。例如,如果你定义了 MY_VAR=42
,使用 execve
,这个定义可以通过使用 getenv
的代码来查看。execlp
允许你只提供可执行文件的名称,它会在 PATH
变量中搜索可执行文件。