【发布时间】:2012-02-25 18:41:03
【问题描述】:
我使用execv 而不是execl。为了使用execv,我创建了一个数组并将与execl 一起使用的参数放入其中。然后我把这个数组放到execv
我知道我必须为execv 使用一组参数,但为什么呢? execl和execv有什么区别?
【问题讨论】:
我使用execv 而不是execl。为了使用execv,我创建了一个数组并将与execl 一起使用的参数放入其中。然后我把这个数组放到execv
我知道我必须为execv 使用一组参数,但为什么呢? execl和execv有什么区别?
【问题讨论】:
除了参数的格式之外没有其他区别。他们最终都会调用相同的底层系统调用execve()。
【讨论】:
execve() 系统调用(和execv())采用数组中的参数。 execl() 只是为了方便而提供,以防你有固定数量的参数,让你避免设置数组的麻烦。 execl() 会将函数参数存储在一个临时数组中,然后进行系统调用。如果您自己设置参数数组,则不需要execl()。