execl和execv有什么区别?

Ahm*_*kol 6 c linux exec

我用execv而不是execl.要使用execv,我创建一个数组并将我使用的参数execl放在那里.然后我把这个数组放入execv

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

mar*_*k4o 8

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

  • `execve()`系统调用(和`execv()`)接受数组中的参数.`execl()`只是为了方便起见,以防你有一个固定数量的参数,以避免设置数组的麻烦.`execl()`将函数参数存储在临时数组中,然后进行系统调用.如果你自己设置参数数组,那么你就不需要`execl()`. (2认同)