execl和execv之间有什么区别?

execl和execv之间有什么区别?,c,linux,exec,C,Linux,Exec,我使用execv而不是execl。为了使用execv,我创建了一个数组,并将与execl一起使用的参数放在其中。然后我将这个数组放入execv 我知道我必须为execv使用一系列参数,但为什么呢?execl和execv之间有什么区别?除了参数的格式之外,没有区别。它们最终都会调用相同的底层系统调用execve()为什么我们需要更改参数的格式?我的意思是,如果他们在做相同的事情,execve()系统调用(和execv())将参数放在一个数组中execl()只是为了方便起见,如果您有固定数量的参数,

我使用
execv
而不是
execl
。为了使用
execv
,我创建了一个数组,并将与
execl
一起使用的参数放在其中。然后我将这个数组放入
execv


我知道我必须为
execv
使用一系列参数,但为什么呢?
execl
execv
之间有什么区别?

除了参数的格式之外,没有区别。它们最终都会调用相同的底层系统调用
execve()

为什么我们需要更改参数的格式?我的意思是,如果他们在做相同的事情,
execve()
系统调用(和
execv()
)将参数放在一个数组中
execl()
只是为了方便起见,如果您有固定数量的参数,可以避免设置数组的麻烦
execl()
将函数参数存储在临时数组中,然后进行系统调用。如果您自己设置参数数组,则无需使用
execl()
。参数可能重复